반응형
반응형

'개발 Tip > etc' 카테고리의 다른 글

게임 엔진에 대한 주관적 견해?!  (0) 2010.07.14
블리자드 게임디자인 프로세서  (0) 2010.07.14
E3쇼 2010 동영상 정보들  (0) 2010.06.18
Building Big Social Games  (0) 2010.06.05
boost callback 사용하기  (0) 2009.09.11
반응형

#include <boost/signal.hpp> <= 요걸 일단 선언해야 한다. 

class Test
{
public:
typedef boost::signal<bool (const Event& arg), SignalTrue> KeySignal;
KeySignal OnKeyDown;
};
위의 코드에서 signal< void (const float time)> TimeSignal; 이런식으로 호출될 수도 있다. 
위의 코드는 편의상 SignalStopWhenResultTrue라는 객체를 선언했는데, 내부적으로 처리(주로 구분용)되는 것을 하면서 인자로 활용되는 녀석을 선언하는 것이고, 필요 없으면, 그냥 없이 선언해도 된다. 
뒤에 오는 두번째 인자는 키값이라고 보면 된다.

connect()함수를 호출하게 되는데 이때, boost::bind()라는 함수를 사용하게 된다. 
이때, 첫번째 인자는 호출된 함수와 해당 호출될 객체의 주소(파생된 객체가 선언될 경우도 있으니...)

test_.OnKeyDown.connect(boost::bind(&GUISystem::OnKeyDown, &guiSystem_, _1)); <= 인자가 하나일때
test_.OnHotkeyCommand.connect(boost::bind(&GUISystem::OnHotkeyCommand, &guiSystem_, _1, _2)); <= 인자가 두개일때


등록 콜백함수 지우기
boost::signal::connection a = timeManager_->OnRunUpTime.connect(boost::bind(&class::OnRunUpTime, this, _1));
// ....
a.disconnect();


                   http://jangyeol.springnote.com/pages/412787
반응형

+ Recent posts