X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdbos%2Fworkdir%2Fstorage%2FDirectory.hpp;h=3bffdf3bda0cc1011b33a85bed94d6f23e7942b1;hb=93366a0bda79e6fd6e7dad6316bfcf8cc82f5731;hp=9f4f670cb3d7006970b045c82c52fa5d85563984;hpb=42c9ed133c166de9c99b4837f834aa5cf465e9a2;p=anna.git diff --git a/example/dbos/workdir/storage/Directory.hpp b/example/dbos/workdir/storage/Directory.hpp index 9f4f670..3bffdf3 100644 --- a/example/dbos/workdir/storage/Directory.hpp +++ b/example/dbos/workdir/storage/Directory.hpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not 'N' Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// 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 -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// 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 @@ -42,19 +14,19 @@ #include 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 Directory; +class Directory; } namespace storage { @@ -63,56 +35,56 @@ using namespace anna; class Directory : public dbos::Object, public dbos::ObjectFacade { public: - const filesystem::Directory* getFilesystemDirectory () const throw () { return a_filesystemDirectory; } - int getINode () const throw () { return a_inode; } - - std::string asString () const throw (); + 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 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; } + 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 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); + 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 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); }; }