00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00020 #ifndef FALCON_DATA_H
00021 #define FALCON_DATA_H
00022
00023 #include <falcon/setup.h>
00024 #include <falcon/memory.h>
00025 #include <falcon/basealloc.h>
00026
00027 namespace Falcon {
00028
00029 class MemPool;
00030 class Stream;
00031
00034 class FALCON_DYN_CLASS FalconData: public BaseAlloc
00035 {
00036 public:
00037 virtual ~FalconData() {}
00038
00039 virtual bool isSequence() const { return false; }
00040
00041 virtual void gcMark( uint32 mark ) = 0;
00042
00043 virtual FalconData *clone() const = 0;
00044
00048 virtual bool serialize( Stream *stream, bool bLive ) const;
00049
00062 virtual bool deserialize( Stream *stream, bool bLive );
00063 };
00064
00065 }
00066
00067 #endif
00068
00069