-// ANNA - Anna is Not 'N' Anymore
+// ANNA - Anna is Not Nothingness Anymore
//
// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
//
-// https://bitbucket.org/testillano/anna
+// http://redmine.teslayout.com/projects/anna-suite
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
-// * Neither the name of Google Inc. nor the names of its
+// * Neither the name of the copyright holder nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
#include <anna/dbos/Loader.hpp>
namespace anna {
- namespace dbms {
- class Database;
- class Connection;
- }
- namespace dbos {
- class Repository;
- }
+namespace dbms {
+class Database;
+class Connection;
+}
+namespace dbos {
+class Repository;
+}
}
namespace workdir {
namespace filesystem {
- class File;
+class File;
}
namespace storage {
class File : public dbos::Object, public dbos::ObjectFacade <File> {
public:
- const Directory* getParent () const throw () { return a_parent; }
- const filesystem::File* getFilesystemFile () const throw () { return a_filesystemFile; }
- int getINode () const throw () { return a_inode; }
-
- std::string asString () const throw ();
-
- static void setup (dbos::Repository&, const int maxSize) throw (RuntimeException);
- static File* instantiate (const filesystem::File*) throw (RuntimeException);
-
- static const char* getStorageAreaName () throw () { return "storage::File"; }
- static const dbos::Size getMaxSize () throw () { return st_maxSize; }
+ const Directory* getParent() const throw() { return a_parent; }
+ const filesystem::File* getFilesystemFile() const throw() { return a_filesystemFile; }
+ int getINode() const throw() { return a_inode; }
+
+ std::string asString() const throw();
+
+ static void setup(dbos::Repository&, const int maxSize) throw(RuntimeException);
+ static File* instantiate(const filesystem::File*) throw(RuntimeException);
+
+ static const char* getStorageAreaName() throw() { return "storage::File"; }
+ static const dbos::Size getMaxSize() throw() { return st_maxSize; }
private:
- class Loader : public dbos::Loader {
- public:
- Loader () : dbos::Loader () {;}
-
- Loader& setKey (const filesystem::File* file) throw () {
- a_filesystemFile = file;
- return *this;
- }
-
- const filesystem::File* getFile () const throw () { return a_filesystemFile; }
- int getINode () const throw () { return a_inode; }
-
- dbos::Index getIndex () const throw ();
- std::string asString () const throw ();
-
- private:
- const filesystem::File* a_filesystemFile;
- 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);
- };
-
- Directory* a_parent;
- const filesystem::File* a_filesystemFile;
- int a_inode;
-
- static Loader* st_loader;
- static ExclusiveHash <std::string> st_hash;
- static int st_maxSize;
-
- File () : a_parent (NULL) { ; }
- File (const File&);
-
- void initialize (dbos::Loader& loader) throw (RuntimeException, dbms::DatabaseException);
- void destroy () throw ();
-
- dbos_declare_object (File);
+ class Loader : public dbos::Loader {
+ public:
+ Loader() : dbos::Loader() {;}
+
+ Loader& setKey(const filesystem::File* file) throw() {
+ a_filesystemFile = file;
+ return *this;
+ }
+
+ const filesystem::File* getFile() const throw() { return a_filesystemFile; }
+ int getINode() const throw() { return a_inode; }
+
+ dbos::Index getIndex() const throw();
+ std::string asString() const throw();
+
+ private:
+ const filesystem::File* a_filesystemFile;
+ 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);
+ };
+
+ Directory* a_parent;
+ const filesystem::File* a_filesystemFile;
+ int a_inode;
+
+ static Loader* st_loader;
+ static ExclusiveHash <std::string> st_hash;
+ static int st_maxSize;
+
+ File() : a_parent(NULL) { ; }
+ File(const File&);
+
+ void initialize(dbos::Loader& loader) throw(RuntimeException, dbms::DatabaseException);
+ void destroy() throw();
+
+ dbos_declare_object(File);
};
}