00001 /* 00002 FALCON - The Falcon Programming Language. 00003 FILE: reflectobject.h 00004 00005 Base abstract class for object with reflective data (providing a user data). 00006 ------------------------------------------------------------------- 00007 Author: Giancarlo Niccolai 00008 Begin: Sun, 25 Jan 2009 15:42:48 +0100 00009 00010 ------------------------------------------------------------------- 00011 (C) Copyright 2009: the FALCON developers (see list in AUTHORS file) 00012 00013 See LICENSE file for licensing details. 00014 */ 00015 00016 #ifndef FLC_REFLECT_OBJECT_H 00017 #define FLC_REFLECT_OBJECT_H 00018 00019 #include <falcon/coreobject.h> 00020 00021 namespace Falcon 00022 { 00023 00024 class FALCON_DYN_CLASS ReflectObject: public CoreObject 00025 { 00026 public: 00027 ReflectObject( const CoreClass* generator, void* userData ); 00028 ReflectObject( const CoreClass* generator, FalconData* fdata ); 00029 ReflectObject( const CoreClass* generator, Sequence* seq ); 00030 00031 ReflectObject( const ReflectObject &other ); 00032 00033 virtual ~ReflectObject(); 00034 00035 virtual bool setProperty( const String &prop, const Item &value ); 00036 virtual bool getProperty( const String &key, Item &ret ) const; 00037 virtual CoreObject *clone() const; 00038 00039 }; 00040 00041 } 00042 00043 #endif 00044 00045 /* end of reflectobject.h */