00001
00002
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& )
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
00181 Handle handle_;
00182
00183
00184 static Handle global_handle_;
00185 };
00186
00187
00188 # ifndef BALL_NO_INLINE_FUNCTIONS
00189 # include <BALL/CONCEPT/object.iC>
00190 # endif
00191
00192 }
00193
00194 #endif // BALL_CONCEPT_OBJECT_H