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 table_cache_dictionary {
00024
00025 class TableCache : public drizzled::plugin::TableFunction
00026 {
00027 public:
00028 TableCache();
00029
00030 class Generator : public drizzled::plugin::TableFunction::Generator
00031 {
00032 bool is_primed;
00033 drizzled::Table *table;
00034 std::vector<drizzled::Table *> table_list;
00035 std::vector<drizzled::Table *>::iterator table_list_iterator;
00036 boost::mutex::scoped_lock scopedLock;
00037
00038 void fill();
00039
00040 bool nextCore();
00041 bool next();
00042
00043 public:
00044 bool populate();
00045
00046 Generator(drizzled::Field **arg);
00047 ~Generator();
00048 };
00049
00050 Generator *generator(drizzled::Field **arg)
00051 {
00052 return new Generator(arg);
00053 }
00054 };
00055
00056 }
00057