~drizzle-trunk/drizzle/development

1861.4.4 by Brian Aker
Cleanup display code around DD/IS
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2010 Brian Aker
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; either version 2 of the License, or
9
 *  (at your option) any later version.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
21
#ifndef DRIZZLED_GENERATOR_ALL_INDEXES_H
22
#define DRIZZLED_GENERATOR_ALL_INDEXES_H
23
24
namespace drizzled {
25
namespace generator {
26
27
class AllIndexes
28
{
29
  Session &session;
30
  message::Table table_message;
1938.4.2 by Brian Aker
Fix style issue around table for message (though this is imperfect,...)
31
  drizzled::message::table::shared_ptr table_ptr;
1861.4.4 by Brian Aker
Cleanup display code around DD/IS
32
  int32_t index_iterator;
33
34
  drizzled::generator::AllTables all_tables_generator;
35
36
  bool table_setup();
37
38
public:
39
40
  AllIndexes(Session &arg);
41
42
  void reset();
43
44
  operator const drizzled::message::Table::Index*()
45
  {
46
    if (table_ptr)
47
    {
48
      do {
49
        if (index_iterator != table_message.indexes_size())
50
        {
51
          const message::Table::Index &index(table_message.indexes(index_iterator++));
52
          return &index;
53
        }
54
55
      } while ((table_ptr= all_tables_generator) && table_setup());
56
    }
57
58
    return NULL;
59
  }
60
};
61
62
} /* namespace generator */
63
} /* namespace drizzled */
64
65
#endif /* DRIZZLED_GENERATOR_ALL_INDEXES_H */