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