00001 #ifndef POOL_PFNCATALOG_H 00002 #define POOL_PFNCATALOG_H 00003 #ifndef POOL_FCIMPL_H 00004 #include "FileCatalog/FCImpl.h" 00005 #endif 00006 #ifndef FCBUF_H 00007 #include "FileCatalog/FCBuf.h" 00008 #endif 00009 00010 namespace pool 00011 { 00033 class PFNCatalog : public FCImpl 00034 { 00035 public: 00036 PFNCatalog (); 00037 virtual ~PFNCatalog (); 00038 00043 virtual void connect(); 00044 00045 virtual void disconnect() const; 00046 virtual void start() const; 00047 virtual void commit(FileCatalog::CommitMode cm=FileCatalog::REFRESH) const; 00048 virtual void rollback() const; 00049 virtual void registerPFN(const std::string& pfn, 00050 const std::string& filetype, 00051 FileCatalog::FileID& fid ) const; 00052 virtual void registerLFN(const std::string& pfn, 00053 const std::string& lfn) const; 00054 virtual void addReplicaPFN(const std::string& pfn, 00055 const std::string& rpf) const; 00056 virtual void addPFNtoGuid(const FileCatalog::FileID& guid, 00057 const std::string& pf, 00058 const std::string& filetype) const; 00059 virtual void renamePFN(const std::string& pfn, 00060 const std::string& newpfn) const; 00068 virtual void lookupFileByPFN(const std::string& pfn, 00069 FileCatalog::FileID& fid, 00070 std::string& ftype) const; 00071 virtual void lookupFileByLFN(const std::string& lfn, 00072 FileCatalog::FileID& fid) const; 00073 00082 virtual void lookupBestPFN(const FileCatalog::FileID& fid, 00083 const FileCatalog::FileOpenMode& omode, 00084 const FileCatalog::FileAccessPattern& amode, 00085 std::string& pfn, 00086 std::string& filetype) const; 00087 virtual void insertPFN(PFNEntry& pentry) const; 00088 virtual void insertLFN(LFNEntry& lentry) const; 00089 virtual void deletePFN(const std::string& pfn) const; 00090 virtual void deleteLFN(const std::string& lfn) const; 00091 virtual void deleteEntry(const FileCatalog::FileID& guid) const; 00092 00093 virtual bool isReadOnly() const; 00094 00095 virtual bool retrievePFN(const std::string& query, 00096 FCBuf<PFNEntry>& buf, 00097 const size_t& start ); 00098 virtual bool retrieveLFN(const std::string& query, 00099 FCBuf<LFNEntry>& buf, 00100 const size_t& start ); 00101 virtual bool retrieveGuid(const std::string& query, 00102 FCBuf<FileCatalog::FileID>& buf, 00103 const size_t& start ); 00104 00105 private: 00106 std::string m_filetype; 00107 00108 }; 00109 00110 00111 } 00112 00113 00114 #endif