LuaTinker로 싱글턴(Singleton) 넘기기

C++과 Lua 바인딩을 위해서 LuaTinker를 사용하고 있는데..
싱글턴(Singleton)은 어떻게 넘겨야 하는지에 대해서 예제에 없어서 찾아봤는데....
검색 능력의 부족인지 정확히 이거다 라고 나오는건 없어서 구글링해서 찾았다.


정확히는 LuaBind를 사용하는 경우에 싱글턴을 넘기는 방법에 대한 이야기인데
LuaTinker에서도 가능할 것이라 생각해도 똑같은 방법을 적용해봤더니 잘되었다.
 
LuaTinker를 사용해서 c++ 클래스를 넘기는 것과 동일하지만 약간 차이가 난다.
lua_tinker::class_add< Singleton >( _luaState, "Singleton" );
lua_tinker::class_def< Singleton >( _luaState, &Singleton::Create );
lua_tinker::class_def< Singleton >( _luaState, &Singleton::Remove );
클래스의 경우에는 여기에다 생성자를 지정하는 코드를 넣게 된다.
lua_tinker::class_con ......
싱글턴의 경우에는 생성자를 지정하는 코드를 넣지 않고, Lua전역 변수로 싱글턴의 인스턴스를 넘겨주게 되면 Lua에서는 인스턴스에 직접 접근해서 객체를 생성하지 않아도 바로 사용할 수 있는 듯하다.
lua_tinker::set( _luaState, "Singleton", &Singleton::GetInstance() );
이렇게 지정하며 Lua 파일에서는 객체를 생성하지 않고 사용할 수 있다.

-- sample.lua
Singleton:Create( .... )

'프로그래밍' 카테고리의 다른 글

Entity 비동기식으로 생성할때 딜레이 감소  (0) 2010.12.20
Xcode에서 OpenGL 프로그래밍 하기  (0) 2010.12.17
Lua Binding  (0) 2010.05.30
코딩도장 - 단어찾기  (0) 2010.04.27
일정 예측  (0) 2010.04.23