00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00020 #ifndef flc_itemtraits_H
00021 #define flc_itemtraits_H
00022
00023 #include <falcon/setup.h>
00024 #include <falcon/item.h>
00025 #include <falcon/traits.h>
00026
00027 namespace Falcon {
00028
00029 class VMachine;
00030
00031 class FALCON_DYN_CLASS ItemTraits: public ElementTraits
00032 {
00033 public:
00034
00035 virtual uint32 memSize() const;
00036 virtual void init( void *itemZone ) const;
00037 virtual void copy( void *targetZone, const void *sourceZone ) const;
00038 virtual int compare( const void *first, const void *second ) const;
00039 virtual void destroy( void *item ) const;
00040 virtual bool owning() const;
00041 };
00042
00043
00044
00045 namespace traits {
00046 extern ItemTraits &t_item();
00047 }
00048
00049
00050 }
00051
00052 #endif
00053
00054