Separate objects context and interface
This commit is contained in:
parent
cf3f8dbc9c
commit
24f9d8acae
32 changed files with 362 additions and 384 deletions
|
|
@ -1,58 +1,44 @@
|
|||
|
||||
#include "compiler/Functions.hpp"
|
||||
|
||||
#include "primitives/BoolObject.hpp"
|
||||
#include "primitives/ClassObject.hpp"
|
||||
#include "primitives/ColorObject.hpp"
|
||||
#include "primitives/DictObject.hpp"
|
||||
#include "primitives/EnumObject.hpp"
|
||||
#include "primitives/FloatObject.hpp"
|
||||
#include "primitives/InterpreterObject.hpp"
|
||||
#include "primitives/IntObject.hpp"
|
||||
#include "primitives/LinkObject.hpp"
|
||||
#include "primitives/ListObject.hpp"
|
||||
#include "primitives/MethodObject.hpp"
|
||||
#include "primitives/NullObject.hpp"
|
||||
#include "primitives/StringObject.hpp"
|
||||
#include "primitives/TypeObject.hpp"
|
||||
#include "primitives/PrimitiveObjects.hpp"
|
||||
|
||||
using namespace tp;
|
||||
using namespace obj;
|
||||
|
||||
static void defineTypes() {
|
||||
NDO->define(&DictObject::TypeData);
|
||||
NDO->define(&IntObject::TypeData);
|
||||
NDO->define(&LinkObject::TypeData);
|
||||
NDO->define(&ListObject::TypeData);
|
||||
NDO->define(&NullObject::TypeData);
|
||||
NDO->define(&StringObject::TypeData);
|
||||
NDO->define(&BoolObject::TypeData);
|
||||
NDO->define(&FloatObject::TypeData);
|
||||
NDO->define(&EnumObject::TypeData);
|
||||
NDO->define(&ClassObject::TypeData);
|
||||
NDO->define(&ColorObject::TypeData);
|
||||
NDO->define(&InterpreterObject::TypeData);
|
||||
NDO->define(&TypeObject::TypeData);
|
||||
objects_api::define(&DictObject::TypeData);
|
||||
objects_api::define(&IntObject::TypeData);
|
||||
objects_api::define(&LinkObject::TypeData);
|
||||
objects_api::define(&ListObject::TypeData);
|
||||
objects_api::define(&NullObject::TypeData);
|
||||
objects_api::define(&StringObject::TypeData);
|
||||
objects_api::define(&BoolObject::TypeData);
|
||||
objects_api::define(&FloatObject::TypeData);
|
||||
objects_api::define(&EnumObject::TypeData);
|
||||
objects_api::define(&ClassObject::TypeData);
|
||||
objects_api::define(&ColorObject::TypeData);
|
||||
objects_api::define(&InterpreterObject::TypeData);
|
||||
objects_api::define(&TypeObject::TypeData);
|
||||
}
|
||||
|
||||
static void defineGroups() {
|
||||
NDO->type_groups.addType(&DictObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&IntObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&LinkObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&ListObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&NullObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&StringObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&BoolObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&FloatObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&EnumObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&ClassObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&ColorObject::TypeData, { "Primitives" });
|
||||
NDO->type_groups.addType(&InterpreterObject::TypeData, { "scripting" });
|
||||
objects_api::addTypeToGroup(&DictObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&IntObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&LinkObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&ListObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&NullObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&StringObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&BoolObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&FloatObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&EnumObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&ClassObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&ColorObject::TypeData, { "Primitives" });
|
||||
objects_api::addTypeToGroup(&InterpreterObject::TypeData, { "scripting" });
|
||||
}
|
||||
|
||||
static bool init(const ModuleManifest*) {
|
||||
if (!NDO) NDO = new objects_api();
|
||||
obj::initialize();
|
||||
objects_api::initialize();
|
||||
|
||||
MethodObject::Initialize();
|
||||
|
||||
|
|
@ -63,20 +49,12 @@ static bool init(const ModuleManifest*) {
|
|||
}
|
||||
|
||||
static void deinit(const ModuleManifest*) {
|
||||
|
||||
NullObject::uninit();
|
||||
MethodObject::UnInitialize();
|
||||
|
||||
obj::finalize();
|
||||
|
||||
assertNoLeaks();
|
||||
|
||||
delete NDO;
|
||||
NDO = nullptr;
|
||||
objects_api::finalize();
|
||||
}
|
||||
|
||||
static ModuleManifest* sModuleDependencies[] = {
|
||||
nullptr
|
||||
};
|
||||
static ModuleManifest* sModuleDependencies[] = { nullptr };
|
||||
|
||||
ModuleManifest obj::gModuleObjects = ModuleManifest("Objects", init, deinit, sModuleDependencies);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue