metaclass.cpp

Go to the documentation of this file.
00001 
00034 #include "linden_common.h" 
00035 
00036 #include "metaclass.h"
00037 
00038 #include "metaproperty.h"
00039 #include "reflective.h"
00040 
00041 LLMetaClass::LLMetaClass()
00042 {
00043 }
00044 
00045 //virtual 
00046 LLMetaClass::~LLMetaClass()
00047 {
00048 }
00049 
00050 const LLMetaProperty* LLMetaClass::findProperty(const std::string& name) const
00051 {
00052         PropertyIterator iter = mProperties.find(name);
00053         if(iter == mProperties.end())
00054         {
00055                 return NULL;
00056         }
00057         return (*iter).second;
00058 }
00059 
00060 void LLMetaClass::addProperty(const LLMetaProperty* property)
00061 {
00062         mProperties.insert(std::make_pair(property->getName(), property));
00063 }
00064 
00065 U32 LLMetaClass::getPropertyCount() const
00066 {
00067         return mProperties.size();
00068 }
00069 
00070 LLMetaClass::PropertyIterator LLMetaClass::beginProperties() const
00071 {
00072         return mProperties.begin();
00073 }
00074 
00075 LLMetaClass::PropertyIterator LLMetaClass::endProperties() const
00076 {
00077         return mProperties.end();
00078 }
00079 
00080 bool LLMetaClass::isInstance(const LLReflective* object) const
00081 {
00082         // TODO: Babbage: Search through super classes of objects MetaClass.
00083         const LLMetaClass* object_meta_class = &(object->getMetaClass());
00084         return (object_meta_class == this);
00085 }
00086 

Generated on Thu Jul 1 06:09:56 2010 for Second Life Viewer by  doxygen 1.4.7