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 #include <drizzled/definitions.h>
00024 #include <drizzled/error.h>
00025 #include <drizzled/sql_parse.h>
00026 #include <drizzled/sql_base.h>
00027 #include <drizzled/join_table.h>
00028 #include <drizzled/optimizer/access_method.h>
00029
00030 #include <boost/shared_ptr.hpp>
00031
00032
00033 class Table;
00034 class JoinTable;
00035
00036 namespace drizzled
00037 {
00038 namespace optimizer
00039 {
00040
00045 class AccessMethodFactory
00046 {
00047 public:
00048
00049 static AccessMethodFactory &singleton()
00050 {
00051 static AccessMethodFactory fact;
00052 return fact;
00053 }
00054
00055 boost::shared_ptr<AccessMethod> createAccessMethod(enum access_method type);
00056
00057 private:
00058
00059 AccessMethodFactory() {}
00060
00061 ~AccessMethodFactory() {}
00062
00063 AccessMethodFactory(const AccessMethodFactory&);
00064 };
00065
00066 }
00067
00068 }
00069