diff options
Diffstat (limited to 'src/libjin-lua/common/je_lua_object.cpp')
-rw-r--r-- | src/libjin-lua/common/je_lua_object.cpp | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/src/libjin-lua/common/je_lua_object.cpp b/src/libjin-lua/common/je_lua_object.cpp deleted file mode 100644 index c35356e..0000000 --- a/src/libjin-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 |