X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdbos%2Fworkdir%2Fstorage%2FFile.hpp;h=412e06c91c5f15be7ecc5550129fa180f60d2719;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=6cee61eb6749073a5ae59985887b61bde2b87568;hpb=42c9ed133c166de9c99b4837f834aa5cf465e9a2;p=anna.git diff --git a/example/dbos/workdir/storage/File.hpp b/example/dbos/workdir/storage/File.hpp index 6cee61e..412e06c 100644 --- a/example/dbos/workdir/storage/File.hpp +++ b/example/dbos/workdir/storage/File.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_File_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 File; +class File; } namespace storage { @@ -65,58 +37,58 @@ using namespace anna; class File : public dbos::Object, public dbos::ObjectFacade { 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 { return a_parent; } + const filesystem::File* getFilesystemFile() const { return a_filesystemFile; } + int getINode() const { return a_inode; } + + std::string asString() const ; + + static void setup(dbos::Repository&, const int maxSize) noexcept(false); + static File* instantiate(const filesystem::File*) noexcept(false); + + static const char* getStorageAreaName() { return "storage::File"; } + static const dbos::Size getMaxSize() { 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 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) { + a_filesystemFile = file; + return *this; + } + + const filesystem::File* getFile() const { return a_filesystemFile; } + int getINode() const { return a_inode; } + + dbos::Index getIndex() const ; + std::string asString() const ; + + private: + const filesystem::File* a_filesystemFile; + int a_inode; + + // dbms::Statement is not required + dbms::Statement* initialize(dbms::Database&) noexcept(false) { return NULL; } + bool load(dbms::Connection*, const dbos::StorageArea*) noexcept(false); + }; + + Directory* a_parent; + const filesystem::File* a_filesystemFile; + int a_inode; + + static Loader* st_loader; + static ExclusiveHash st_hash; + static int st_maxSize; + + File() : a_parent(NULL) { ; } + File(const File&); + + void initialize(dbos::Loader& loader) noexcept(false); + void destroy() ; + + dbos_declare_object(File); }; }