📄 object.cpp
字号:
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright (c) 2005-2006 Intel Corporation. All Rights Reserved.
//
#include "object.h"
//OBJECT_TYPE_IMPL(Object);
/*
template <class T>
bool ObjectTypeCheck(T* p_object)
{
return !vm_string_strcmp(T::GetStaticObjectType(),p_object->GetObjectType());
}
*/
bool ObjectTypeCheck(Object* p_object)
{
return true;
}
Object::~Object()
{
}
typedef ObjectsList* (*FN_EXPORT_OBJECTS_LIST)(void);
static vm_char* g_pfuncname = VM_STRING("ExportObjectsList");
ObjectsList*
ObjectsList::Load(vm_char* p_filename, vm_char* p_funcname)
{
FN_EXPORT_OBJECTS_LIST fnExportObjectsList;
ObjectsList* p_objects_list;
vm_so_handle handle;
if (p_filename == NULL) return NULL;
if(p_funcname == NULL)
{
p_funcname = g_pfuncname;
}
handle = vm_so_load(p_filename);
if (handle == NULL)
{
return NULL;
}
fnExportObjectsList = (FN_EXPORT_OBJECTS_LIST)vm_so_get_addr(handle,p_funcname);
if (fnExportObjectsList == NULL)
{
vm_so_free(handle);
return NULL;
}
p_objects_list = fnExportObjectsList();
if (p_objects_list == NULL)
{
vm_so_free(handle);
return NULL;
}
p_objects_list->handle = handle;
p_objects_list->p_next = NULL;
return p_objects_list;
}
ObjectsList g_static_objects_list = {NULL};
bool
ObjectReg(Object* p_object)
{
Object* p_counter;
if (g_static_objects_list.p_begin == NULL)
{
g_static_objects_list.p_begin = p_object;
return true;
}
p_counter = g_static_objects_list.p_begin;
while (p_counter->m_pnext != NULL)
{
p_counter = p_counter->m_pnext;
}
p_counter->m_pnext = p_object;
p_object->m_pnext = NULL;
return true;
}
#if defined WIN32
ObjectsList * WINAPI
ExportObjectsList(void)
{
return &g_static_objects_list;
}
#else
extern "C" ObjectsList*
ExportObjectsList(void)
{
return &g_static_objects_list;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -