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 <boost/shared_ptr.hpp>
00024 #include <drizzled/identifier/catalog.h>
00025 #include <drizzled/message/catalog.h>
00026
00027 namespace drizzled {
00028 namespace catalog {
00029
00030 class Engine
00031 {
00032 public:
00033 typedef boost::shared_ptr<Engine> shared_ptr;
00034 typedef std::vector<shared_ptr> vector;
00035
00036 protected:
00037 friend class drizzled::plugin::Catalog;
00038
00039 Engine()
00040 { };
00041
00042 virtual ~Engine()
00043 { };
00044
00045
00046 virtual bool create(const identifier::Catalog& , message::catalog::shared_ptr &)= 0;
00047 virtual bool drop(const identifier::Catalog&)= 0;
00048
00049
00050 virtual bool exist(const identifier::Catalog& identifier)= 0;
00051 virtual void getIdentifiers(identifier::catalog::vector &identifiers)= 0;
00052 virtual message::catalog::shared_ptr getMessage(const identifier::Catalog&)= 0;
00053 virtual void getMessages(message::catalog::vector &messages)= 0;
00054 };
00055
00056 }
00057 }
00058