00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_CONCEPT_OBJECT_H
00008 #define BALL_CONCEPT_OBJECT_H
00009
00010 #ifndef BALL_CONCEPT_AUTODELETABLE_H
00011 # include <BALL/CONCEPT/autoDeletable.h>
00012 #endif
00013
00014 #ifndef BALL_COMMON_RTTI_H
00015 # include <BALL/COMMON/rtti.h>
00016 #endif
00017
00018 #ifndef BALL_CONCEPT_BIDIRECTIONALITERATOR_H
00019 # include <BALL/CONCEPT/bidirectionalIterator.h>
00020 #endif
00021
00022 #ifndef BALL_COMMON_GLOBAL_H
00023 # include <BALL/COMMON/global.h>
00024 #endif
00025
00026 namespace BALL
00027 {
00028
00036 class BALL_EXPORT Object
00037 : public AutoDeletable
00038 {
00039 public:
00040
00041 BALL_CREATE(Object)
00042
00043
00045
00047 Object()
00048 ;
00049
00051 Object(const Object& object)
00052 ;
00053
00055 virtual ~Object()
00056 ;
00057
00059 virtual void clear()
00060 ;
00061
00063
00066
00073 const Object& operator = (const Object& )
00074 ;
00075
00077
00080
00084 Handle getHandle() const
00085 ;
00086
00091 static Handle getNextHandle()
00092 ;
00093
00098 static Handle getNewHandle()
00099 ;
00101
00109 bool operator == (const Object& object) const
00110 ;
00111
00118 bool operator != (const Object& object) const
00119 ;
00120
00127 bool operator < (const Object& object) const
00128 ;
00129
00136 bool operator <= (const Object& object) const
00137 ;
00138
00146 bool operator >= (const Object& object) const
00147 ;
00148
00155 bool operator > (const Object& object) const
00156 ;
00157
00164 int compare(const Object& object) const
00165 ;
00167
00170
00172 virtual bool isValid() const
00173 ;
00174
00176 virtual void dump(::std::ostream& s = std::cout, Size depth = 0) const
00177 ;
00179
00180 private:
00181
00182
00183 Handle handle_;
00184
00185
00186 static Handle global_handle_;
00187 };
00188
00189
00190 # ifndef BALL_NO_INLINE_FUNCTIONS
00191 # include <BALL/CONCEPT/object.iC>
00192 # endif
00193
00194 }
00195
00196 #endif // BALL_CONCEPT_OBJECT_H