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