00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __DATAOBJ_H_
00021 #define __DATAOBJ_H_
00022
00023 #include "csutil/csobject.h"
00024
00032 class csDataObject : public csObject
00033 {
00034 protected:
00036 void* data;
00037
00038 public:
00040 csDataObject (void *d) : csObject (), data (d)
00041 { SCF_CONSTRUCT_IBASE (NULL); SCF_CONSTRUCT_EMBEDDED_IBASE (scfiDataObject); }
00043 void* GetData () const
00044 { return data; }
00049 static void* GetData (iObject* obj)
00050 {
00051 iDataObject *d = CS_GET_CHILD_OBJECT (obj, iDataObject);
00052 void *res = (d ? d->GetData () : NULL);
00053 if (d) d->DecRef ();
00054 return res;
00055 }
00056
00057 SCF_DECLARE_IBASE_EXT (csObject);
00058
00059 struct DataObject : public iDataObject
00060 {
00061 SCF_DECLARE_EMBEDDED_IBASE (csDataObject);
00062
00063 virtual iObject* QueryObject ()
00064 { return scfParent; }
00065 virtual void* GetData ()
00066 { return scfParent->GetData (); }
00067 } scfiDataObject;
00068 };
00069
00070 #endif