Add no-deprecated to warnings due to dynamic exceptions.
[anna.git] / example / dbos / workdir / storage / File.hpp
index 6cee61e..51d4293 100644 (file)
@@ -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
 #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 {
@@ -65,58 +37,58 @@ using namespace anna;
 
 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);
 };
 
 }