DATAKIT API  V2025.1
dtk_object.hpp
Go to the documentation of this file.
1 #ifndef __DTK_OBJECT_HPP__
2 #define __DTK_OBJECT_HPP__
3 #include "def/define.h"
4 #include "util/util_ptr_dtk.hpp"
5 
6 
7 class Dtk_Object
8 {
9 protected:
10  void _init();
11  void _reset();
12  void _copy(const Dtk_Object& s);
13  enum { _typeID = DTK_TYPE_OBJECT };
14  unsigned long count_;
15  friend class Dtk_SmartPtr<Dtk_Object>;
16 public:
19  virtual ~Dtk_Object();
21 
22  virtual void dump(FILE * file = stdout);
23  //downcasting
24  virtual int DtkDynamicType(const int& inId) = 0;
26  friend std::ostream& operator<<(std::ostream& o,const Dtk_Object& d);
27  virtual Dtk_Size_t GetSize() const;
28 };
29 
30 #endif
Dtk_Object::_init
void _init()
Dtk_Object::_copy
void _copy(const Dtk_Object &s)
Dtk_Object::count_
unsigned long count_
Definition: dtk_object.hpp:14
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_Object::_reset
void _reset()
DTK_TYPE_OBJECT
@ DTK_TYPE_OBJECT
Definition: define.h:464
Dtk_Object::DtkDynamicCast
static Dtk_Object * DtkDynamicCast(Dtk_Object *s)
Dtk_Object::Dtk_Object
Dtk_Object(const Dtk_Object &s)
Dtk_Object::dump
virtual void dump(FILE *file=stdout)
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_Object::operator<<
friend std::ostream & operator<<(std::ostream &o, const Dtk_Object &d)
Dtk_Object::GetSize
virtual Dtk_Size_t GetSize() const
util_ptr_dtk.hpp
define.h
Dtk_Object::_typeID
@ _typeID
Definition: dtk_object.hpp:13
Dtk_Object::DtkDynamicType
virtual int DtkDynamicType(const int &inId)=0
Dtk_Object::Dtk_Object
Dtk_Object()
Dtk_Object
Definition: dtk_object.hpp:8
Dtk_Object::~Dtk_Object
virtual ~Dtk_Object()
Dtk_Object::operator=
Dtk_Object & operator=(const Dtk_Object &s)