~drizzle-trunk/drizzle/development

2252.1.5 by Olaf van der Spek
Copyright
1
/* Drizzle
2
 * Copyright (C) 2011 Olaf van der Spek
3
 * 
4
 * This program is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU General Public License as published by
6
 * the Free Software Foundation, either version 2 of the License, or
7
 * (at your option) any later version.
8
 * 
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
 * GNU General Public License for more details.
13
 * 
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
 */
17
2252.1.1 by Olaf van der Spek
Common fwd
18
#pragma once
19
2252.1.8 by Olaf van der Spek
Common fwd
20
#include <boost/shared_ptr.hpp>
2275.3.3 by Olaf van der Spek
Thread
21
#include <boost/thread/condition_variable.hpp>
22
#include <boost/thread/mutex.hpp>
2318.6.30 by Olaf van der Spek
Refactor
23
#include <cstring>
2318.6.112 by Olaf van der Spek
Move type::Time typedefs to common_fwd
24
#include <drizzled/visibility.h>
2252.1.8 by Olaf van der Spek
Common fwd
25
#include <string>
2252.1.6 by Olaf van der Spek
Add namespace identifier
26
#include <vector>
27
2252.1.1 by Olaf van der Spek
Common fwd
28
namespace drizzled {
29
2252.1.2 by Olaf van der Spek
Common fwd
30
namespace catalog
31
{
32
  class Instance;
2252.1.20 by Olaf van der Spek
Common fwd
33
34
  namespace lock 
35
  {
36
    class Create;
37
    class Erase;
38
  }
39
}
40
41
namespace field 
42
{
2252.1.25 by Olaf van der Spek
Common fwd
43
  class Epoch;
2252.1.20 by Olaf van der Spek
Common fwd
44
  class TableShare;
45
}
46
47
namespace generator 
48
{
49
  class TableDefinitionCache;
50
51
  namespace catalog 
52
  {
53
    class Cache;
54
    class Instance;
55
  }
2252.1.2 by Olaf van der Spek
Common fwd
56
}
57
2252.1.1 by Olaf van der Spek
Common fwd
58
namespace internal
59
{
2296.1.2 by Brian Aker
A couple of additional fixes for the IO Cache name,
60
  struct io_cache_st;
2252.1.1 by Olaf van der Spek
Common fwd
61
  struct st_my_thread_var;
62
}
63
2252.1.6 by Olaf van der Spek
Add namespace identifier
64
namespace identifier
65
{
66
  class Catalog;
2252.1.2 by Olaf van der Spek
Common fwd
67
  class Schema;
68
  class Table;
69
  class User;
2252.1.6 by Olaf van der Spek
Add namespace identifier
70
71
  typedef int64_t Session;
72
73
  namespace catalog
74
  {
75
    typedef std::vector<Catalog> vector;
76
  }
77
78
  namespace schema
79
  {
80
    typedef std::vector<Schema> vector;
81
  }
82
83
  namespace table
84
  {
2252.1.10 by Olaf van der Spek
Common fwd
85
    // typedef message::Table::TableType Type;
2252.1.6 by Olaf van der Spek
Add namespace identifier
86
    typedef std::vector<Table> vector;
87
  }
88
89
  namespace user
90
  {
91
    typedef boost::shared_ptr<const User> ptr;
92
    typedef boost::shared_ptr<User> mptr;
93
  }
2252.1.1 by Olaf van der Spek
Common fwd
94
}
95
96
namespace item
97
{
98
  class Boolean;
99
  class False;
100
  class True;
101
}
102
103
namespace memory
104
{
105
  class Root;
106
}
107
108
namespace message
109
{
2252.1.21 by Olaf van der Spek
Common fwd
110
  class AlterSchemaStatement;
2252.1.17 by Olaf van der Spek
Common fwd
111
  class AlterTable;
2252.1.21 by Olaf van der Spek
Common fwd
112
  class CreateSchemaStatement;
113
  class CreateTableStatement;
114
  class DeleteData;
115
  class DeleteHeader;
116
  class DeleteRecord;
117
  class DropSchemaStatement;
118
  class DropTableStatement;
119
  class InsertData;
120
  class InsertHeader;
121
  class InsertRecord;
2252.1.1 by Olaf van der Spek
Common fwd
122
  class Resultset;
123
  class Schema;
2252.1.21 by Olaf van der Spek
Common fwd
124
  class SetVariableStatement;
2252.1.1 by Olaf van der Spek
Common fwd
125
  class Statement;
2263.3.5 by Olaf van der Spek
Refactor Open_tables_state
126
  class Table;
2252.1.1 by Olaf van der Spek
Common fwd
127
  class Transaction;
2252.1.21 by Olaf van der Spek
Common fwd
128
  class TruncateTableStatement;
129
  class UpdateData;
130
  class UpdateHeader;
131
  class UpdateRecord;
2252.1.1 by Olaf van der Spek
Common fwd
132
}
133
134
namespace module
135
{
2252.1.21 by Olaf van der Spek
Common fwd
136
  class Graph;
137
  class Library;
138
  class Manifest;
139
  class Module;
140
  class option_map;
2252.1.1 by Olaf van der Spek
Common fwd
141
  class Registry;
2252.1.21 by Olaf van der Spek
Common fwd
142
  class VertexHandle;
2252.1.1 by Olaf van der Spek
Common fwd
143
}
144
145
namespace plugin 
146
{ 
2252.1.20 by Olaf van der Spek
Common fwd
147
  class Catalog;
2252.1.1 by Olaf van der Spek
Common fwd
148
  class Client;
2252.1.25 by Olaf van der Spek
Common fwd
149
  class EventData;
150
  class EventObserver;
2252.1.1 by Olaf van der Spek
Common fwd
151
  class EventObserverList;
2252.1.17 by Olaf van der Spek
Common fwd
152
  class Function;
2252.1.25 by Olaf van der Spek
Common fwd
153
  class Listen;
2252.1.1 by Olaf van der Spek
Common fwd
154
  class MonitoredInTransaction;
2252.1.25 by Olaf van der Spek
Common fwd
155
  class NullClient;
2252.1.1 by Olaf van der Spek
Common fwd
156
  class Scheduler;
157
  class StorageEngine;
158
  class TransactionApplier;
159
  class TransactionReplicator;
160
  class TransactionalStorageEngine;
161
  class XaResourceManager;
2252.1.18 by Olaf van der Spek
Common fwd
162
  class XaStorageEngine;
2252.1.1 by Olaf van der Spek
Common fwd
163
}
164
165
namespace optimizer 
166
{ 
2252.1.21 by Olaf van der Spek
Common fwd
167
  class compare_functor;
2252.1.1 by Olaf van der Spek
Common fwd
168
  class CostVector; 
2252.1.25 by Olaf van der Spek
Common fwd
169
  class Parameter;
2252.1.1 by Olaf van der Spek
Common fwd
170
  class Position;
2252.1.25 by Olaf van der Spek
Common fwd
171
  class QuickRange;
172
  class QuickRangeSelect;
173
  class RangeParameter;
174
  class RorScanInfo;
175
  class SEL_ARG;
176
  class SEL_IMERGE;
177
  class SEL_TREE;
2252.1.1 by Olaf van der Spek
Common fwd
178
  class SqlSelect;
2252.1.25 by Olaf van der Spek
Common fwd
179
  struct st_qsel_param;
2252.1.1 by Olaf van der Spek
Common fwd
180
}
181
2252.1.2 by Olaf van der Spek
Common fwd
182
namespace session 
183
{ 
184
  class State; 
185
  class TableMessages;
2269.1.3 by Olaf van der Spek
Session Times
186
  class Times;
2252.1.2 by Olaf van der Spek
Common fwd
187
  class Transactions;
188
}
189
2252.1.13 by Olaf van der Spek
Common fwd
190
namespace sql
191
{
192
  class ResultSet;
193
}
194
2252.1.17 by Olaf van der Spek
Common fwd
195
namespace statement 
196
{ 
197
  class Statement; 
198
}
199
2252.1.1 by Olaf van der Spek
Common fwd
200
namespace table 
201
{ 
2272.1.1 by Olaf van der Spek
Refactor includes
202
  class Cache;
2252.1.25 by Olaf van der Spek
Common fwd
203
  class Concurrent;
2252.1.1 by Olaf van der Spek
Common fwd
204
  class Placeholder; 
2252.1.2 by Olaf van der Spek
Common fwd
205
  class Singular; 
2252.1.25 by Olaf van der Spek
Common fwd
206
207
  namespace instance
208
  {
209
    class Shared;
210
  }
2252.1.1 by Olaf van der Spek
Common fwd
211
}
212
213
namespace type 
214
{ 
215
  class Decimal;
216
  class Time; 
2318.6.112 by Olaf van der Spek
Move type::Time typedefs to common_fwd
217
218
  typedef int64_t datetime_t;
219
  typedef int64_t date_t;
220
  typedef int64_t epoch_t;
221
  typedef uint32_t usec_t;
2252.1.1 by Olaf van der Spek
Common fwd
222
}
223
2252.1.2 by Olaf van der Spek
Common fwd
224
namespace util
225
{
226
  class Storable;
2252.1.25 by Olaf van der Spek
Common fwd
227
  struct insensitive_equal_to;
228
  struct insensitive_hash;
2252.1.8 by Olaf van der Spek
Common fwd
229
230
  namespace string
231
  {
232
    typedef boost::shared_ptr<const std::string> ptr;
233
    typedef boost::shared_ptr<std::string> mptr;
234
    typedef std::vector<std::string> vector;
235
  }
2252.1.2 by Olaf van der Spek
Common fwd
236
}
237
2252.1.1 by Olaf van der Spek
Common fwd
238
typedef struct my_locale_st MY_LOCALE;
2252.1.25 by Olaf van der Spek
Common fwd
239
typedef struct st_columndef MI_COLUMNDEF;
2252.1.1 by Olaf van der Spek
Common fwd
240
241
class AlterColumn;
242
class AlterDrop;
243
class AlterInfo;
244
class Arg_comparator;
2252.1.21 by Olaf van der Spek
Common fwd
245
class Cached_item;
2252.1.1 by Olaf van der Spek
Common fwd
246
class CachedDirectory;
2252.1.25 by Olaf van der Spek
Common fwd
247
class COND_EQUAL;
2252.1.1 by Olaf van der Spek
Common fwd
248
class CopyField;
2252.1.17 by Olaf van der Spek
Common fwd
249
class CopyInfo;
2252.1.21 by Olaf van der Spek
Common fwd
250
class Create_func;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
251
class CreateField;
2252.1.17 by Olaf van der Spek
Common fwd
252
class Cursor;
2252.1.1 by Olaf van der Spek
Common fwd
253
class Date;
254
class DateTime;
2252.1.2 by Olaf van der Spek
Common fwd
255
class Diagnostics_area;
2252.1.21 by Olaf van der Spek
Common fwd
256
class DRIZZLE_ERROR;
2252.1.1 by Olaf van der Spek
Common fwd
257
class DrizzleLock;
258
class DrizzleXid;
259
class Field;
260
class Field_blob;
2252.1.17 by Olaf van der Spek
Common fwd
261
class file_exchange;
2252.1.1 by Olaf van der Spek
Common fwd
262
class ForeignKeyInfo;
263
class Hybrid_type;
264
class Hybrid_type_traits;
2252.1.2 by Olaf van der Spek
Common fwd
265
class Identifier;
2252.1.18 by Olaf van der Spek
Common fwd
266
class Index_hint;
2252.1.1 by Olaf van der Spek
Common fwd
267
class Internal_error_handler;
268
class Item;
269
class Item_bool_func2;
2252.1.21 by Olaf van der Spek
Common fwd
270
class Item_cache;
2252.1.1 by Olaf van der Spek
Common fwd
271
class Item_equal;
272
class Item_field;
2252.1.17 by Olaf van der Spek
Common fwd
273
class Item_func;
2252.1.21 by Olaf van der Spek
Common fwd
274
class Item_func_not_all;
2252.1.16 by Olaf van der Spek
Common fwd
275
class Item_func_set_user_var;
2252.1.1 by Olaf van der Spek
Common fwd
276
class Item_ident;
2252.1.21 by Olaf van der Spek
Common fwd
277
class Item_in_optimizer;
2252.1.1 by Olaf van der Spek
Common fwd
278
class Item_in_subselect;
2252.1.21 by Olaf van der Spek
Common fwd
279
class Item_maxmin_subselect;
2252.1.25 by Olaf van der Spek
Common fwd
280
class Item_outer_ref;
2252.1.1 by Olaf van der Spek
Common fwd
281
class Item_row;
2252.1.18 by Olaf van der Spek
Common fwd
282
class Item_subselect;
2252.1.1 by Olaf van der Spek
Common fwd
283
class Item_sum;
2252.1.21 by Olaf van der Spek
Common fwd
284
class Item_sum_avg;
2252.1.1 by Olaf van der Spek
Common fwd
285
class Item_sum_hybrid;
2252.1.21 by Olaf van der Spek
Common fwd
286
class Item_sum_std;
287
class Item_sum_variance;
2252.1.1 by Olaf van der Spek
Common fwd
288
class Join;
289
class JoinTable;
2252.1.18 by Olaf van der Spek
Common fwd
290
class KeyInfo;
2252.1.1 by Olaf van der Spek
Common fwd
291
class LEX;
2252.1.25 by Olaf van der Spek
Common fwd
292
class Lex_Column;
2252.1.1 by Olaf van der Spek
Common fwd
293
class Lex_input_stream;
2318.8.14 by Olaf van der Spek
Merge trunk
294
class lex_string_t;
2252.1.21 by Olaf van der Spek
Common fwd
295
class Name_resolution_context;
2252.1.18 by Olaf van der Spek
Common fwd
296
class NamedSavepoint;
297
class Natural_join_column;
2252.1.2 by Olaf van der Spek
Common fwd
298
class ResourceContext;
2252.1.21 by Olaf van der Spek
Common fwd
299
class RorIntersectReadPlan; 
2252.1.1 by Olaf van der Spek
Common fwd
300
class SecurityContext;
301
class Select_Lex;
302
class Select_Lex_Unit;
2252.1.21 by Olaf van der Spek
Common fwd
303
class select_result;
304
class select_result_interceptor;
2252.1.18 by Olaf van der Spek
Common fwd
305
class select_union;
2252.1.1 by Olaf van der Spek
Common fwd
306
class SendField;
307
class Session;
308
class SortField;
309
class SortParam;
2252.1.18 by Olaf van der Spek
Common fwd
310
class StoredKey;
2252.1.25 by Olaf van der Spek
Common fwd
311
class st_lex_symbol;
2252.1.1 by Olaf van der Spek
Common fwd
312
class String;
2252.1.21 by Olaf van der Spek
Common fwd
313
class subselect_engine;
314
class subselect_hash_sj_engine;
315
class sys_var;
316
class sys_var_str;
317
class system_status_var;
2252.1.1 by Olaf van der Spek
Common fwd
318
class Table;
2252.1.21 by Olaf van der Spek
Common fwd
319
class Table_ident;
2252.1.1 by Olaf van der Spek
Common fwd
320
class TableList;
321
class TableShare;
322
class TableShareInstance;
2252.1.18 by Olaf van der Spek
Common fwd
323
class Temporal;
2252.1.25 by Olaf van der Spek
Common fwd
324
class TemporalInterval;
325
class TemporalIntervalDayOrLess;
326
class TemporalIntervalDayOrWeek;
327
class TemporalIntervalYear;
328
class TemporalIntervalYearMonth;
2252.1.1 by Olaf van der Spek
Common fwd
329
class Time;
2252.1.21 by Olaf van der Spek
Common fwd
330
class Time_zone;
2252.1.18 by Olaf van der Spek
Common fwd
331
class Timestamp;
332
class Tmp_Table_Param;
2252.1.21 by Olaf van der Spek
Common fwd
333
class TYPELIB;
334
class Unique;
2252.1.1 by Olaf van der Spek
Common fwd
335
class user_var_entry;
336
class var;
2252.1.25 by Olaf van der Spek
Common fwd
337
class XID;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
338
2252.1.1 by Olaf van der Spek
Common fwd
339
struct CacheField;
2252.1.2 by Olaf van der Spek
Common fwd
340
struct Ha_data;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
341
struct charset_info_st;
2252.1.1 by Olaf van der Spek
Common fwd
342
struct option;
343
struct Order;
344
2252.1.2 by Olaf van der Spek
Common fwd
345
typedef Item COND;
2252.1.16 by Olaf van der Spek
Common fwd
346
typedef uint64_t query_id_t;
2252.1.6 by Olaf van der Spek
Add namespace identifier
347
typedef int64_t session_id_t;
2252.1.2 by Olaf van der Spek
Common fwd
348
typedef uint64_t my_xid;
349
2252.1.1 by Olaf van der Spek
Common fwd
350
} // namespace drizzled