Documentation

Support

Vivox Core SDK

Vivox Core SDK

Message types

How to identify and handle different message types.
Read time 1 minuteLast updated 20 hours ago

Games need a message handler to process Vivox event and response messages. To determine the message type, check the
vx_message_base_t.type
field.
  • If the type is
    msg_response
    , then the message is of the type
    x_resp_base_t
    , and you can cast the pointer directly to
    vx_resp_base_t
    .
  • If the type is
    msg_event
    , then the message is of the type
    vx_evt_base_t
    , and you can cast the pointer directly to
    vx_evt_base_t
    .
The following code displays an example of these message types:
void MyGamesMessageHandler (vx_message_base_t *msg){ if (msg->type == msg_response) { // Call your response handler here vx_resp_base_t *resp = reinterpret_cast<vx_resp_base_t *>(msg); MyGamesResponseHandler(resp); // implementation below } else if(msg->type == msg_event) { vx_evt_base_t *evt = reinterpret_cast<vx_evt_base_t *>(msg); MyGamesEventHandler(evt); // implementation below }}
If the message is of the type
vx_resp_base
, then the game can look at the
vx_resp_base.type
field to determine the actual response type.
The following code displays an example of this message type:
void MyGamesResponseHandler(vx_resp_base_t *resp){ if (resp->type == resp_connector_create) { // Call your response handler here vx_resp_connector_create_t *typed_resp = reinterpret_cast<x_resp_connector_create_t *>(resp); MyGamesConnectorCreateHandler(typed_resp); } else if (resp->type == ...) { ... }}
If the message is of the type
vx_evt_base
, then the game can look at the
vx_evt_base.type
field to determine the actual response type.
The following code displays an example of this message type:
void MyGamesEventHandler(vx_evt_base_t *evt){ if (evt->type == evt_account_login_state_change) { // Call your response handler here vx_evt_account_login_state_change *typed_evt = reinterpret_cast<vx_evt_account_login_state_change *>(evt); MyGamesLoginStateChangeHandler(typed_evt); } else if (evt->type == ...) { ... }}