object.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: object.h,v 1.25 2005/12/23 17:01:40 amoll Exp $ 
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& /* 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     //_ The handle of this instance
00183     Handle        handle_;
00184 
00185     //_ The global handle
00186     static Handle global_handle_;
00187   };
00188 
00189 
00190 # ifndef BALL_NO_INLINE_FUNCTIONS
00191 #   include <BALL/CONCEPT/object.iC>
00192 # endif
00193 
00194 } // namespace BALL
00195 
00196 #endif // BALL_CONCEPT_OBJECT_H