aboutsummaryrefslogtreecommitdiff
path: root/src/lua/common/je_lua_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/common/je_lua_object.cpp')
-rw-r--r--src/lua/common/je_lua_object.cpp112
1 files changed, 0 insertions, 112 deletions
diff --git a/src/lua/common/je_lua_object.cpp b/src/lua/common/je_lua_object.cpp
deleted file mode 100644
index c35356e..0000000
--- a/src/lua/common/je_lua_object.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-#include "je_lua_object.h"
-#include "je_lua.h"
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- void LuaObject::bind(Shared* obj)
- {
- if (obj)
- {
- shared = obj;
- shared->retain();
- dependencies = new std::map<uint, LuaObject*>();
- }
- }
-
- void LuaObject::release()
- {
- // Delete lua shared table reference and references.
- if (dependencies)
- {
- clearDependencies();
- delete dependencies;
- dependencies = nullptr;
- }
- // Try delete engine side shared.
- if (shared)
- {
- shared->release();
- shared = nullptr;
- }
- }
-
- const char* LuaObject::getObjectType()
- {
- return type;
- }
-
- Shared* LuaObject::getShared()
- {
- return shared;
- }
-
- void LuaObject::setDependency(uint key, LuaObject* dep)
- {
- removeDependency(key);
- dependencies->insert(std::pair<uint, LuaObject*>(key, dep));
- luax_addreference(state, this, dep);
- }
-
- void LuaObject::removeDependency(uint key)
- {
- if (!isDependOn(key))
- return;
- DepsMap::iterator it = dependencies->find(key);
- LuaObject* dep = it->second;
- luax_removereference(state, this, dep);
- dependencies->erase(it);
- }
-
- void LuaObject::removeDependency(LuaObject* dependency)
- {
- for (DepsMap::iterator it = dependencies->begin(); it != dependencies->end();)
- {
- LuaObject* dep = it->second;
- if (dep == dependency)
- {
- luax_removereference(state, this, dep);
- dependencies->erase(it);
- }
- else
- ++it;
- }
- }
-
- bool LuaObject::isDependOn(uint key)
- {
- return dependencies->find(key) != dependencies->end();
- }
-
- bool LuaObject::isDependOn(LuaObject* shared)
- {
- for (std::pair<uint, LuaObject*> dep : (*dependencies))
- {
- if (dep.second == shared)
- return true;
- }
- return false;
- }
-
- void LuaObject::clearDependencies()
- {
- luax_removereference(state, this);
- dependencies->clear();
- }
-
- LuaObject* LuaObject::getDependency(uint key)
- {
- if (!isDependOn(key))
- return nullptr;
- return dependencies->find(key)->second;
- }
-
- int LuaObject::getDependenciesCount()
- {
- return dependencies->size();
- }
-
- }
-} \ No newline at end of file