Ejemplo n.º 1
0
 NBaseObj* NReflect::Create(LPCTSTR szNamespace, LPCTSTR szClassName, LPCSTR filePath, int line)
 {
     NBaseObj* result = NULL;
     ClassData* pClassData;
     if(GetClassData(szNamespace, szClassName, pClassData))
     {
         if(pClassData->flag == None)
         {
             result = pClassData->creator(filePath, line);
         }
         else if(pClassData->flag == Singleton)
         {
             if(pClassData->existObj == NULL)
             {
                 pClassData->existObj = pClassData->creator(filePath, line);
                 if(pClassData->existObj != NULL)
                 {
                     pClassData->existObj->AddRef();
                 }
             }
             result = pClassData->existObj;
         }
     }
     if(result != NULL)
         result->AddRef();
     NAssertError(result != NULL, _T("Invalid data in NReflect::Create"));
     return result;
 }
Ejemplo n.º 2
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
	inline RegisteredClass::ClassID RegisteredClass::GetClassID(void) const
	{
		Check_Object(this);
		RegisteredClass__ClassData* data = GetClassData();
		Check_Object(data);
		return data->GetClassID();
	}
Ejemplo n.º 3
0
 bool NReflect::IsClassExists(LPCTSTR szNamespace, LPCTSTR szClassName)
 {
     ClassData* pClassData;
     return GetClassData(szNamespace, szClassName, pClassData);
 }