Drizzled Public API Documentation

common_fwd.h
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 
18 #pragma once
19 
20 #include <boost/shared_ptr.hpp>
21 #include <boost/thread/condition_variable.hpp>
22 #include <boost/thread/mutex.hpp>
23 #include <cstring>
24 #include <drizzled/visibility.h>
25 #include <drizzled/util/data_ref.h>
26 #include <string>
27 #include <vector>
28 
29 namespace drizzled {
30 
31 namespace catalog
32 {
33  class Instance;
34 
35  namespace lock
36  {
37  class Create;
38  class Erase;
39  }
40 }
41 
42 namespace field
43 {
44  class Epoch;
45  class TableShare;
46 }
47 
48 namespace generator
49 {
50  class TableDefinitionCache;
51 
52  namespace catalog
53  {
54  class Cache;
55  class Instance;
56  }
57 }
58 
59 namespace internal
60 {
61  struct io_cache_st;
62  struct st_my_thread_var;
63 }
64 
65 namespace identifier
66 {
67  class Catalog;
68  class Schema;
69  class Table;
70  class User;
71 
72  typedef int64_t Session;
73 
74  namespace catalog
75  {
76  typedef std::vector<Catalog> vector;
77  }
78 
79  namespace schema
80  {
81  typedef std::vector<Schema> vector;
82  }
83 
84  namespace table
85  {
86  // typedef message::Table::TableType Type;
87  typedef std::vector<Table> vector;
88  }
89 
90  namespace user
91  {
92  typedef boost::shared_ptr<const User> ptr;
93  typedef boost::shared_ptr<User> mptr;
94  }
95 }
96 
97 namespace item
98 {
99  class Boolean;
100  class False;
101  class True;
102 }
103 
104 namespace memory
105 {
106  class Root;
107 }
108 
109 namespace message
110 {
111  class AlterSchemaStatement;
112  class AlterTable;
113  class CreateSchemaStatement;
114  class CreateTableStatement;
115  class DeleteData;
116  class DeleteHeader;
117  class DeleteRecord;
118  class DropSchemaStatement;
119  class DropTableStatement;
120  class InsertData;
121  class InsertHeader;
122  class InsertRecord;
123  class Resultset;
124  class Schema;
125  class SetVariableStatement;
126  class Statement;
127  class Table;
128  class Transaction;
129  class TruncateTableStatement;
130  class UpdateData;
131  class UpdateHeader;
132  class UpdateRecord;
133 }
134 
135 namespace module
136 {
137  class Graph;
138  class Library;
139  class Manifest;
140  class Module;
141  class option_map;
142  class Registry;
143  class VertexHandle;
144 }
145 
146 namespace plugin
147 {
148  class Catalog;
149  class Client;
150  class EventData;
151  class EventObserver;
152  class EventObserverList;
153  class Function;
154  class Listen;
155  class MonitoredInTransaction;
156  class NullClient;
157  class Scheduler;
158  class StorageEngine;
159  class TransactionApplier;
160  class TransactionReplicator;
161  class TransactionalStorageEngine;
162  class XaResourceManager;
163  class XaStorageEngine;
164 }
165 
166 namespace optimizer
167 {
168  class compare_functor;
169  class CostVector;
170  class Parameter;
171  class Position;
172  class QuickRange;
173  class QuickRangeSelect;
174  class RangeParameter;
175  class RorScanInfo;
176  class SEL_ARG;
177  class SEL_IMERGE;
178  class SEL_TREE;
179  class SqlSelect;
180  struct st_qsel_param;
181 }
182 
183 namespace session
184 {
185  class State;
186  class TableMessages;
187  class Times;
188  class Transactions;
189 }
190 
191 namespace sql
192 {
193  class ResultSet;
194 }
195 
196 namespace statement
197 {
198  class Statement;
199 }
200 
201 namespace table
202 {
203  class Cache;
204  class Concurrent;
205  class Placeholder;
206  class Singular;
207 
208  namespace instance
209  {
210  class Shared;
211  }
212 }
213 
214 namespace type
215 {
216  class Decimal;
217  class Time;
218 
219  typedef int64_t datetime_t;
220  typedef int64_t date_t;
221  typedef int64_t epoch_t;
222  typedef uint32_t usec_t;
223 }
224 
225 namespace util
226 {
227  class Storable;
228  struct insensitive_equal_to;
229  struct insensitive_hash;
230 
231  namespace string
232  {
233  typedef boost::shared_ptr<const std::string> ptr;
234  typedef boost::shared_ptr<std::string> mptr;
235  typedef std::vector<std::string> vector;
236  }
237 }
238 
239 typedef struct my_locale_st MY_LOCALE;
240 typedef struct st_columndef MI_COLUMNDEF;
241 
242 class AlterColumn;
243 class AlterDrop;
244 class AlterInfo;
245 class Arg_comparator;
246 class Cached_item;
247 class CachedDirectory;
248 class COND_EQUAL;
249 class CopyField;
250 class CopyInfo;
251 class Create_func;
252 class CreateField;
253 class Cursor;
254 class Date;
255 class DateTime;
256 class Diagnostics_area;
257 class DRIZZLE_ERROR;
258 class DrizzleLock;
259 class DrizzleXid;
260 class Field;
261 class Field_blob;
262 class file_exchange;
263 class ForeignKeyInfo;
264 class Hybrid_type;
265 class Hybrid_type_traits;
266 class Identifier;
267 class Index_hint;
268 class Internal_error_handler;
269 class Item;
270 class Item_bool_func2;
271 class Item_cache;
272 class Item_equal;
273 class Item_field;
274 class Item_func;
275 class Item_func_not_all;
276 class Item_func_set_user_var;
277 class Item_ident;
278 class Item_in_optimizer;
279 class Item_in_subselect;
280 class Item_maxmin_subselect;
281 class Item_outer_ref;
282 class Item_row;
283 class Item_subselect;
284 class Item_sum;
285 class Item_sum_avg;
286 class Item_sum_hybrid;
287 class Item_sum_std;
288 class Item_sum_variance;
289 class Join;
290 class JoinTable;
291 class KeyInfo;
292 class LEX;
293 class Lex_Column;
294 class Lex_input_stream;
295 class lex_string_t;
296 class Name_resolution_context;
297 class NamedSavepoint;
298 class Natural_join_column;
299 class ResourceContext;
300 class RorIntersectReadPlan;
301 class SecurityContext;
302 class Select_Lex;
303 class Select_Lex_Unit;
304 class select_result;
305 class select_result_interceptor;
306 class select_union;
307 class SendField;
308 class Session;
309 class SortField;
310 class SortParam;
311 class StoredKey;
312 class st_lex_symbol;
313 class String;
314 class subselect_engine;
315 class subselect_hash_sj_engine;
316 class sys_var;
317 class sys_var_str;
318 class system_status_var;
319 class Table;
320 class Table_ident;
321 class TableList;
322 class TableShare;
323 class TableShareInstance;
324 class Temporal;
325 class TemporalInterval;
326 class TemporalIntervalDayOrLess;
327 class TemporalIntervalDayOrWeek;
328 class TemporalIntervalYear;
329 class TemporalIntervalYearMonth;
330 class Time;
331 class Time_zone;
332 class Timestamp;
333 class Tmp_Table_Param;
334 class TYPELIB;
335 class Unique;
336 class user_var_entry;
337 class var;
338 class XID;
339 
340 struct CacheField;
341 struct Ha_data;
342 struct charset_info_st;
343 struct option;
344 struct Order;
345 
346 typedef Item COND;
347 typedef uint64_t query_id_t;
348 typedef int64_t session_id_t;
349 typedef uint64_t my_xid;
350 
351 } // namespace drizzled