回调函数

来源:互联网 发布:mysql 配置优化 编辑:程序博客网 时间:2024/06/11 18:45
回调函数,必须是static函数,必须编译就存在,不能new的时候才有,即运行状态才有.
如: lapbCallbacks.handleInData   = lapbDataInCallback;
(notes:static void lapbDataInCallback(unsigned char *p_data, int data_size, unsigned int nai);)
里面的二次回调不用static的,而且是private的。
pL3LapbProxy->lapbDataInCallbackExt(nai, DAL_HEADER_NO_FEATURE, p_data, data_size);
private:

void lapbDataInCallbackExt(unsigned int extsrc, unsigned int feature, unsigned char *p_data, int data_size);


回调函数注册:l2注册
L3LapbProxy::L3LapbProxy(void): L3Base()
{
    lapbCallbacks.handleInData   = lapbDataInCallback;
    ......
}


回调函数调: l2调用
void dl_api_callback_DL_DA_IN(
    appCallbackIf->handleInData((uchar FAR*)p_data, data_size, nai);
}


回调函数实现: l3 实现
void
L3LapbProxy::lapbDataInCallback(unsigned char* p_data, int data_size, unsigned int nai)
{
    pL3LapbProxy = L3LapbProxy::getInstance(L3_INSTANCE_REC_IDX);
    pL3LapbProxy->lapbDataInCallbackExt(nai, DAL_HEADER_NO_FEATURE, p_data, data_size);
}

0 0
原创粉丝点击