如果我正确理解你的话,你可以采取两种不同的方式。
假设这一反馈结构正在使用数据参数,使你能够把自己的数据传递给反馈职能(共同模式),你可以这样做:
class MyProcessingClass
{
public:
MyProcessingClass();
virtual ~MyProcessingClass();
// Do whatever processing in this method
virtual void onReceive(Lacewing::Server &Server, Lacewing::Server::Client &Client);
}
void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client,
char * Data, int Size)
{
if ( Data != NULL )
{
MyProcessingClass *handler = reinterpret_cast<MyProcessingClass *>(Data);
handler->onReceive( Server, Client );
}
}
或者,如果数据点是你需要处理的,而不是“用户数据点”,那么你可能不得不使用单一吨、某种全球变数或类似数据。 在我的经验中,这是使用反馈的不太常见的方法,希望是你重新处理。
MyProcessingClass g_Processor;
MyProcessingClass *GetProcessor()
{
return &g_Processor; // or some other way of getting your instance
}
void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client,
char * Data, int Size)
{
MyProcessingClass *handler = GetProcessor();
if ( handler != NULL )
{
handler->onReceive( Server, Client );
}
}