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/make_shared.hpp>
00024 #include <drizzled/catalog/engine.h>
00025
00026 namespace plugin {
00027 namespace catalog {
00028
00029 class Engine : public drizzled::catalog::Engine
00030 {
00031
00032 public:
00033 Engine() :
00034 drizzled::catalog::Engine()
00035 {}
00036
00037 bool create(const drizzled::identifier::Catalog &identifier, drizzled::message::catalog::shared_ptr &);
00038 bool drop(const drizzled::identifier::Catalog &identifier);
00039
00040 bool exist(const drizzled::identifier::Catalog &identifier)
00041 {
00042 if (drizzled::catalog::local_identifier() == identifier)
00043 return true;
00044
00045 return false;
00046 }
00047
00048 void getIdentifiers(drizzled::identifier::Catalog::vector &identifiers)
00049 {
00050 identifiers.push_back(drizzled::catalog::local_identifier());
00051 }
00052
00053 drizzled::message::catalog::shared_ptr getMessage(drizzled::identifier::Catalog::const_reference identifier);
00054
00055 void getMessages(drizzled::message::catalog::vector &messages);
00056
00057 private:
00058 drizzled::message::catalog::shared_ptr readFile(drizzled::identifier::Catalog::const_reference identifier);
00059 bool writeFile(const drizzled::identifier::Catalog &identifier, drizzled::message::catalog::shared_ptr &message);
00060 void prime(drizzled::message::catalog::vector &messages);
00061
00062 };
00063
00064 }
00065 }
00066