BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_CONCEPT_OBJECT_H 00006 #define BALL_CONCEPT_OBJECT_H 00007 00008 #ifndef BALL_CONCEPT_AUTODELETABLE_H 00009 # include <BALL/CONCEPT/autoDeletable.h> 00010 #endif 00011 00012 #ifndef BALL_COMMON_RTTI_H 00013 # include <BALL/COMMON/rtti.h> 00014 #endif 00015 00016 #ifndef BALL_CONCEPT_BIDIRECTIONALITERATOR_H 00017 # include <BALL/CONCEPT/bidirectionalIterator.h> 00018 #endif 00019 00020 #ifndef BALL_COMMON_GLOBAL_H 00021 # include <BALL/COMMON/global.h> 00022 #endif 00023 00024 namespace BALL 00025 { 00026 00034 class BALL_EXPORT Object 00035 : public AutoDeletable 00036 { 00037 public: 00038 00039 BALL_CREATE(Object) 00040 00041 00043 00045 Object() 00046 ; 00047 00049 Object(const Object& object) 00050 ; 00051 00053 virtual ~Object() 00054 ; 00055 00057 virtual void clear() 00058 ; 00059 00061 00064 00071 const Object& operator = (const Object& /* object */) 00072 ; 00073 00075 00078 00082 Handle getHandle() const 00083 ; 00084 00089 static Handle getNextHandle() 00090 ; 00091 00096 static Handle getNewHandle() 00097 ; 00099 00107 bool operator == (const Object& object) const 00108 ; 00109 00116 bool operator != (const Object& object) const 00117 ; 00118 00125 bool operator < (const Object& object) const 00126 ; 00127 00134 bool operator <= (const Object& object) const 00135 ; 00136 00144 bool operator >= (const Object& object) const 00145 ; 00146 00153 bool operator > (const Object& object) const 00154 ; 00155 00162 int compare(const Object& object) const 00163 ; 00165 00168 00170 virtual bool isValid() const 00171 ; 00172 00174 virtual void dump(::std::ostream& s = std::cout, Size depth = 0) const 00175 ; 00177 00178 private: 00179 00180 //_ The handle of this instance 00181 Handle handle_; 00182 00183 //_ The global handle 00184 static Handle global_handle_; 00185 }; 00186 00187 00188 # ifndef BALL_NO_INLINE_FUNCTIONS 00189 # include <BALL/CONCEPT/object.iC> 00190 # endif 00191 00192 } // namespace BALL 00193 00194 #endif // BALL_CONCEPT_OBJECT_H