From 420b91db29485df39fd6e724e782c449158811cb Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 2 Jan 2007 08:33:20 +0000 Subject: Print done when done. --- indra/llcommon/metaproperty.h | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 indra/llcommon/metaproperty.h (limited to 'indra/llcommon/metaproperty.h') diff --git a/indra/llcommon/metaproperty.h b/indra/llcommon/metaproperty.h new file mode 100644 index 0000000000..be615f2c67 --- /dev/null +++ b/indra/llcommon/metaproperty.h @@ -0,0 +1,55 @@ +/** + * @file metaproperty.h + * @author Babbage + * @date 2006-05-15 + * @brief Reflective meta information describing a property of a class. + * + * Copyright (c) 2006-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_METAPROPERTY_H +#define LL_METAPROPERTY_H + +#include "stdtypes.h" +#include "llsd.h" +#include "reflective.h" + +class LLMetaClass; +class LLReflective; +class LLMetaProperty +{ +public: + LLMetaProperty(const std::string& name, const LLMetaClass& object_class); + virtual ~LLMetaProperty(); + + // Get property name. + const std::string& getName() const {return mName;} + + // Get value of this property. + virtual const LLReflective* get(const LLReflective* object) const = 0; + + // Set value of this property. + // virtual void set(LLReflective* object, const LLReflective* value) = 0; + + // Get value of this property as LLSD. Default returns undefined LLSD. + virtual LLSD getLLSD(const LLReflective* object) const = 0; + + // Get the MetaClass of legal values of this property. + // const LLMetaClass& getValueMetaClass(); + + // Get the meta class that this property is a member of. + const LLMetaClass& getObjectMetaClass() const; + +protected: + + // Check object is instance of object class, throw exception if not. + void checkObjectClass(const LLReflective* object) const; + +private: + + std::string mName; + const LLMetaClass& mObjectClass; +}; + +#endif // LL_METAPROPERTY_H -- cgit v1.2.3