00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 namespace drizzled {
00024 namespace table {
00025
00026 class Temporary : public Table
00027 {
00028 instance::Singular *_share;
00030 public:
00031 Temporary(const identifier::Table::Type type_arg,
00032 const identifier::Table &identifier,
00033 const char *path_arg, uint32_t path_length_arg)
00034 {
00035 _share= new instance::Singular(type_arg, identifier, path_arg, path_length_arg);
00036 }
00037
00038 virtual const TableShare *getShare() const { assert(_share); return _share; }
00039 virtual TableShare *getMutableShare() { assert(_share); return _share; }
00040 virtual bool hasShare() const { return _share ? true : false ; }
00041 virtual void setShare(TableShare *new_share)
00042 {
00043 _share= static_cast<instance::Singular *>(new_share);
00044 }
00045
00046 void release()
00047 {
00048 delete _share;
00049 _share= NULL;
00050 }
00051 };
00052
00053
00054 }
00055 }
00056