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 generator {
00025
00026 class AllIndexes
00027 {
00028 Session &session;
00029 message::Table table_message;
00030 drizzled::message::table::shared_ptr table_ptr;
00031 int32_t index_iterator;
00032
00033 drizzled::generator::AllTables all_tables_generator;
00034
00035 bool table_setup();
00036
00037 public:
00038
00039 AllIndexes(Session &arg);
00040
00041 void reset();
00042
00043 operator const drizzled::message::Table::Index*()
00044 {
00045 if (table_ptr)
00046 {
00047 do {
00048 if (index_iterator != table_message.indexes_size())
00049 {
00050 const message::Table::Index &index(table_message.indexes(index_iterator++));
00051 return &index;
00052 }
00053
00054 } while ((table_ptr= all_tables_generator) && table_setup());
00055 }
00056
00057 return NULL;
00058 }
00059 };
00060
00061 }
00062 }
00063