+++ /dev/null
-// ANNA - Anna is Not Nothingness Anymore //
-// //
-// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
-// //
-// See project site at http://redmine.teslayout.com/projects/anna-suite //
-// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
-
-
-#ifndef dbos_workdir_storage_Directory_hpp
-#define dbos_workdir_storage_Directory_hpp
-
-#include <anna/dbos/Object.hpp>
-#include <anna/dbos/ObjectFacade.hpp>
-#include <anna/dbos/Loader.hpp>
-
-namespace anna {
-namespace dbms {
-class Database;
-class Connection;
-}
-namespace dbos {
-class Repository;
-}
-}
-
-namespace workdir {
-
-namespace filesystem {
-class Directory;
-}
-
-namespace storage {
-
-using namespace anna;
-
-class Directory : public dbos::Object, public dbos::ObjectFacade <Directory> {
-public:
- const filesystem::Directory* getFilesystemDirectory() const throw() { return a_filesystemDirectory; }
- int getINode() const throw() { return a_inode; }
-
- std::string asString() const throw();
-
- static void setup(dbos::Repository&, const int maxSize) throw(RuntimeException);
- static Directory* instantiate(const filesystem::Directory*) throw(RuntimeException);
-
- static const char* getStorageAreaName() throw() { return "storage::Directory"; }
- static const dbos::Size getMaxSize() throw() { return st_maxSize; }
-
-private:
- class Loader : public dbos::Loader {
- public:
- Loader() : dbos::Loader() {;}
-
- Loader& setKey(const filesystem::Directory* directory) throw() {
- a_filesystemDirectory = directory;
- return *this;
- }
-
- const filesystem::Directory* getDirectory() const throw() { return a_filesystemDirectory; }
- int getINode() const throw() { return a_inode; }
-
- dbos::Index getIndex() const throw();
- std::string asString() const throw();
-
- private:
- const filesystem::Directory* a_filesystemDirectory;
- int a_inode;
-
- // dbms::Statement is not required
- dbms::Statement* initialize(dbms::Database&) throw(RuntimeException) { return NULL; }
- bool load(dbms::Connection*, const dbos::StorageArea*) throw(RuntimeException);
- };
-
- const filesystem::Directory* a_filesystemDirectory;
- int a_inode;
-
- static Loader* st_loader;
- static ExclusiveHash <std::string> st_hash;
- static int st_maxSize;
-
- Directory() { ; }
- Directory(const Directory&);
-
- void initialize(dbos::Loader& loader) throw(RuntimeException, dbms::DatabaseException);
- void destroy() throw();
-
- dbos_declare_object(Directory);
-};
-
-}
-}
-
-#endif