示例#1
0
ugcs::vsm::Operation_waiter
Red_button_processor::Listen(Event_handler handler,
                                   ugcs::vsm::Request_completion_context::Ptr ctx)
{
    ugcs::vsm::Request::Ptr req = Create_listen_request(handler, ctx);
    Submit_request(req);
    return req;
}
示例#2
0
void
Red_button_processor::Handle_event(Event_handler handler,
                                   ugcs::vsm::Request_completion_context::Ptr ctx,
                                   Event_id last_event)
{
    if (handler.Invoke()) {
        ugcs::vsm::Request::Ptr req = Create_listen_request(handler, ctx, last_event);
        Submit_request(req);
    }
}
示例#3
0
/** [Define sample api call] */
ugcs::vsm::Operation_waiter
Sample_processor::Sample_api_method(int param,
                                    Handler handler,
                                    ugcs::vsm::Request_completion_context::Ptr comp_ctx)
{
    ugcs::vsm::Request::Ptr req = ugcs::vsm::Request::Create();
    req->Set_processing_handler(
        ugcs::vsm::Make_callback(&Sample_processor::Process_api_call, Shared_from_this(),
                           param, req, handler));
    req->Set_completion_handler(comp_ctx ? comp_ctx : def_comp_ctx,
                                handler);
    Submit_request(req);
    return req;
}