Create a communicator object.
MCO_RET mco_iot_comm_create(/*IN*/mco_iot_comm_params_t *params, /*OUT*/ mco_iot_comm_h *comm);
params | The mco_iot_comm_params_t structure containing the initialized parameters |
comm | The communicator object handle |
This function creates a communicator object and returns the handle in comm
.
MCO_S_OK | Communicator successfully created |
MCO_E_ILLEGAL_PARAM | Values in params are not valid / suitable |
MCO_E_NOMEM | Unable to allocate memory for the communicator data structure |
MCO_E_NW_* | Unable to create / initialize the "wakeup" socket |
The code snippet below initializes the ARF (IoT) runtime and, after opening and connecting the database, creates the communicator:
int main(int argc, char *argv[]) { mco_db_params_t db_params; mco_device_t dev; mco_db_h db; mco_iot_replicator_params_t repl_params; mco_iot_comm_params_t comm_params; mco_iot_replicator_h repl; mco_iot_comm_h comm; const char *conn_string = (argc > 1) ? argv[1] : "127.0.0.1:15000"; ... /* Initialize eXtremeDB and IoT runtimes */ mco_error_set_handler(&sample_errhandler); mco_runtime_start(); mco_iot_init(); /* Create database */ dev.type = MCO_MEMORY_CONV; dev.assignment = MCO_MEMORY_ASSIGN_DATABASE; dev.size = DEVICE_DATABASE_SIZE; dev.dev.conv.ptr = (void*)malloc(dev.size); mco_db_params_init (&db_params); db_params.db_max_connections = 5; if (argc > 2) { db_params.iot_agent_id = atoi(argv[2]); /* Override the agent_id in the schema */ } CHECK(mco_db_open_dev(db_name, iotdevice_get_dictionary(), &dev, 1, &db_params)); CHECK(mco_db_connect(db_name, &db)); mco_iot_comm_params_init(&comm_params); CHECK(mco_iot_comm_create(&comm_params, &comm)); ... }