Drizzled Public API Documentation

common_fwd.h
00001 /* Drizzle
00002  * Copyright (C) 2011 Olaf van der Spek
00003  * 
00004  * This program is free software: you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation, either version 2 of the License, or
00007  * (at your option) any later version.
00008  * 
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00012  * GNU General Public License for more details.
00013  * 
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program. If not, see <http://www.gnu.org/licenses/>.
00016  */
00017 
00018 #pragma once
00019 
00020 #include <boost/shared_ptr.hpp>
00021 #include <boost/thread/condition_variable.hpp>
00022 #include <boost/thread/mutex.hpp>
00023 #include <cstring>
00024 #include <drizzled/visibility.h>
00025 #include <drizzled/util/data_ref.h>
00026 #include <string>
00027 #include <vector>
00028 
00029 namespace drizzled {
00030 
00031 namespace catalog
00032 {
00033   class Instance;
00034 
00035   namespace lock 
00036   {
00037     class Create;
00038     class Erase;
00039   }
00040 }
00041 
00042 namespace field 
00043 {
00044   class Epoch;
00045   class TableShare;
00046 }
00047 
00048 namespace generator 
00049 {
00050   class TableDefinitionCache;
00051 
00052   namespace catalog 
00053   {
00054     class Cache;
00055     class Instance;
00056   }
00057 }
00058 
00059 namespace internal
00060 {
00061   struct io_cache_st;
00062   struct st_my_thread_var;
00063 }
00064 
00065 namespace identifier
00066 {
00067   class Catalog;
00068   class Schema;
00069   class Table;
00070   class User;
00071 
00072   typedef int64_t Session;
00073 
00074   namespace catalog
00075   {
00076     typedef std::vector<Catalog> vector;
00077   }
00078 
00079   namespace schema
00080   {
00081     typedef std::vector<Schema> vector;
00082   }
00083 
00084   namespace table
00085   {
00086     // typedef message::Table::TableType Type;
00087     typedef std::vector<Table> vector;
00088   }
00089 
00090   namespace user
00091   {
00092     typedef boost::shared_ptr<const User> ptr;
00093     typedef boost::shared_ptr<User> mptr;
00094   }
00095 }
00096 
00097 namespace item
00098 {
00099   class Boolean;
00100   class False;
00101   class True;
00102 }
00103 
00104 namespace memory
00105 {
00106   class Root;
00107 }
00108 
00109 namespace message
00110 {
00111   class AlterSchemaStatement;
00112   class AlterTable;
00113   class CreateSchemaStatement;
00114   class CreateTableStatement;
00115   class DeleteData;
00116   class DeleteHeader;
00117   class DeleteRecord;
00118   class DropSchemaStatement;
00119   class DropTableStatement;
00120   class InsertData;
00121   class InsertHeader;
00122   class InsertRecord;
00123   class Resultset;
00124   class Schema;
00125   class SetVariableStatement;
00126   class Statement;
00127   class Table;
00128   class Transaction;
00129   class TruncateTableStatement;
00130   class UpdateData;
00131   class UpdateHeader;
00132   class UpdateRecord;
00133 }
00134 
00135 namespace module
00136 {
00137   class Graph;
00138   class Library;
00139   class Manifest;
00140   class Module;
00141   class option_map;
00142   class Registry;
00143   class VertexHandle;
00144 }
00145 
00146 namespace plugin 
00147 { 
00148   class Catalog;
00149   class Client;
00150   class EventData;
00151   class EventObserver;
00152   class EventObserverList;
00153   class Function;
00154   class Listen;
00155   class MonitoredInTransaction;
00156   class NullClient;
00157   class Scheduler;
00158   class StorageEngine;
00159   class TransactionApplier;
00160   class TransactionReplicator;
00161   class TransactionalStorageEngine;
00162   class XaResourceManager;
00163   class XaStorageEngine;
00164 }
00165 
00166 namespace optimizer 
00167 { 
00168   class compare_functor;
00169   class CostVector; 
00170   class Parameter;
00171   class Position;
00172   class QuickRange;
00173   class QuickRangeSelect;
00174   class RangeParameter;
00175   class RorScanInfo;
00176   class SEL_ARG;
00177   class SEL_IMERGE;
00178   class SEL_TREE;
00179   class SqlSelect;
00180   struct st_qsel_param;
00181 }
00182 
00183 namespace session 
00184 { 
00185   class State; 
00186   class TableMessages;
00187   class Times;
00188   class Transactions;
00189 }
00190 
00191 namespace sql
00192 {
00193   class ResultSet;
00194 }
00195 
00196 namespace statement 
00197 { 
00198   class Statement; 
00199 }
00200 
00201 namespace table 
00202 { 
00203   class Cache;
00204   class Concurrent;
00205   class Placeholder; 
00206   class Singular; 
00207 
00208   namespace instance
00209   {
00210     class Shared;
00211   }
00212 }
00213 
00214 namespace type 
00215 { 
00216   class Decimal;
00217   class Time; 
00218 
00219   typedef int64_t datetime_t;
00220   typedef int64_t date_t;
00221   typedef int64_t epoch_t;
00222   typedef uint32_t usec_t;
00223 }
00224 
00225 namespace util
00226 {
00227   class Storable;
00228   struct insensitive_equal_to;
00229   struct insensitive_hash;
00230 
00231   namespace string
00232   {
00233     typedef boost::shared_ptr<const std::string> ptr;
00234     typedef boost::shared_ptr<std::string> mptr;
00235     typedef std::vector<std::string> vector;
00236   }
00237 }
00238 
00239 typedef struct my_locale_st MY_LOCALE;
00240 typedef struct st_columndef MI_COLUMNDEF;
00241 
00242 class AlterColumn;
00243 class AlterDrop;
00244 class AlterInfo;
00245 class Arg_comparator;
00246 class Cached_item;
00247 class CachedDirectory;
00248 class COND_EQUAL;
00249 class CopyField;
00250 class CopyInfo;
00251 class Create_func;
00252 class CreateField;
00253 class Cursor;
00254 class Date;
00255 class DateTime;
00256 class Diagnostics_area;
00257 class DRIZZLE_ERROR;
00258 class DrizzleLock;
00259 class DrizzleXid;
00260 class Field;
00261 class Field_blob;
00262 class file_exchange;
00263 class ForeignKeyInfo;
00264 class Hybrid_type;
00265 class Hybrid_type_traits;
00266 class Identifier;
00267 class Index_hint;
00268 class Internal_error_handler;
00269 class Item;
00270 class Item_bool_func2;
00271 class Item_cache;
00272 class Item_equal;
00273 class Item_field;
00274 class Item_func;
00275 class Item_func_not_all;
00276 class Item_func_set_user_var;
00277 class Item_ident;
00278 class Item_in_optimizer;
00279 class Item_in_subselect;
00280 class Item_maxmin_subselect;
00281 class Item_outer_ref;
00282 class Item_row;
00283 class Item_subselect;
00284 class Item_sum;
00285 class Item_sum_avg;
00286 class Item_sum_hybrid;
00287 class Item_sum_std;
00288 class Item_sum_variance;
00289 class Join;
00290 class JoinTable;
00291 class KeyInfo;
00292 class LEX;
00293 class Lex_Column;
00294 class Lex_input_stream;
00295 class lex_string_t;
00296 class Name_resolution_context;
00297 class NamedSavepoint;
00298 class Natural_join_column;
00299 class ResourceContext;
00300 class RorIntersectReadPlan; 
00301 class SecurityContext;
00302 class Select_Lex;
00303 class Select_Lex_Unit;
00304 class select_result;
00305 class select_result_interceptor;
00306 class select_union;
00307 class SendField;
00308 class Session;
00309 class SortField;
00310 class SortParam;
00311 class StoredKey;
00312 class st_lex_symbol;
00313 class String;
00314 class subselect_engine;
00315 class subselect_hash_sj_engine;
00316 class sys_var;
00317 class sys_var_str;
00318 class system_status_var;
00319 class Table;
00320 class Table_ident;
00321 class TableList;
00322 class TableShare;
00323 class TableShareInstance;
00324 class Temporal;
00325 class TemporalInterval;
00326 class TemporalIntervalDayOrLess;
00327 class TemporalIntervalDayOrWeek;
00328 class TemporalIntervalYear;
00329 class TemporalIntervalYearMonth;
00330 class Time;
00331 class Time_zone;
00332 class Timestamp;
00333 class Tmp_Table_Param;
00334 class TYPELIB;
00335 class Unique;
00336 class user_var_entry;
00337 class var;
00338 class XID;
00339 
00340 struct CacheField;
00341 struct Ha_data;
00342 struct charset_info_st;
00343 struct option;
00344 struct Order;
00345 
00346 typedef Item COND;
00347 typedef uint64_t query_id_t;
00348 typedef int64_t session_id_t;
00349 typedef uint64_t my_xid;
00350 
00351 } // namespace drizzled