Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

IOManagerDB.h

00001 #ifndef SCT_ARCHIVEFILE_IOMANAGERARCHIVEFILE_H
00002 #define SCT_ARCHIVEFILE_IOMANAGERARCHIVEFILE_H
00003 
00004 #include "Sct/Archive/IOManagerArchive.h"
00005 #include "Sct/IoExceptions.h"
00006 #include "Sct/LogicErrors.h"
00007 #include "SctData/ResultHeader.h"
00008 
00009 class Sct::Serializable;
00010 class MysqlConnection;
00011 class MysqlQuery;
00012 
00013 namespace SctArchiving {
00014 class ZlibStringCompressor;
00021 class IOManagerDB : public Sct::Archive::IOManagerArchive {
00022 public:
00024   static IOManagerDB& instance();
00026   virtual void write(const Sct::Serializable& ob, const Sct::IOParams* params = 0) const;
00028   virtual shared_ptr<Sct::Serializable> read(const string& name, const Sct::IOParams* params = 0) const;
00029   virtual ~IOManagerDB();
00031   virtual std::string status() const;
00032  private:
00033   IOManagerDB();  
00034   MysqlQuery getQuery() const; 
00035   static IOManagerDB* s_man; 
00036 
00039   boost::shared_ptr<ZlibStringCompressor> m_compressor;
00040   boost::shared_ptr<MysqlConnection> m_connection; 
00041 
00044   static const SctData::ResultHeader& getHeader( const Sct::Serializable& ob);
00048   void prepareInsertion(const Sct::Serializable& ob, MysqlQuery& q) const;
00053   static std::string getQueryMatching(const string& name);
00057   static std::string getTable(const Sct::Serializable& ob);
00058 };
00059 }
00060 #endif //SCT_ARCHIVEFILE_IOMANAGERARCHIVEFILE_H

Generated on Thu Jul 15 09:50:47 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5