]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkObject.h
Compil sous Windows
[bbtk.git] / kernel / src / bbtkObject.h
index 27ed132e5c90d23c9c842fe70535945bc53e86da..ac9a5b98003025f61f6b1be2b996633253c7b7c6 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkObject.h,v $
   Language:  C++
-  Date:      $Date: 2008/04/24 11:49:59 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2008/05/06 13:45:12 $
+  Version:   $Revision: 1.4 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See doc/license.txt or
@@ -24,6 +24,7 @@
 #ifndef __bbtkObject_h__
 #define __bbtkObject_h__
 
+#include <bbtkSystem.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/weak_ptr.hpp>
 #include <set>
@@ -32,7 +33,7 @@ namespace bbtk
 {
 
   // The top class of bbtk class hierarchy 
-  class Object 
+  class BBTK_EXPORT Object 
   {
   public:
     typedef boost::shared_ptr<Object> Pointer;
@@ -58,7 +59,7 @@ namespace bbtk
     static long GetObjectsCount() { return mgObjectList.size(); }
 
     /// Default objects deleter : removes object from list on deletion
-    struct Deleter 
+    struct BBTK_EXPORT Deleter 
     { 
       Deleter() : mPointer() {}
       virtual void operator() (Object* p); 
@@ -159,6 +160,15 @@ protected:                                                     \
     CLASS(const CLASS&);                                                   \
     ~CLASS();                                      
   
+#define BBTK_OBJECT_INTERFACE_NO_CONDES(CLASS)                             \
+  BBTK_OBJECT_MINIMAL_INTERFACE_WITH_SELF(CLASS);                  \
+public:                                                                    \
+  std::string GetObjectName() const;                               \
+    std::string GetObjectInfo() const ;                                    \
+    size_t GetObjectSize() const ;                                 \
+    size_t GetObjectInternalSize() const ;                         \
+    size_t GetObjectRecursiveSize() const ;                        
+
 #define BBTK_ABSTRACT_OBJECT_INTERFACE(CLASS)                          \
   public : typedef CLASS Self;                                         \
     BBTK_OBJECT_MINIMAL_INTERFACE;                                     \
@@ -170,15 +180,16 @@ protected:                                                                \
   //=======================================================================
   // A struct with one static instance 
   // just to print object list info after main
-  struct StaticInitTime
+  class BBTK_EXPORT StaticInitTime
   {
+  public:
     StaticInitTime();
     ~StaticInitTime();
 
 
     static bool PrintObjectListInfo;
   private:
-    static Object mObject;
+         static bbtk::Object mObject;
   };