mco_iot_comm_create

Create a communicator object.

For an overview see page ARF Applications in C

Prototype

 
    MCO_RET mco_iot_comm_create(/*IN*/mco_iot_comm_params_t *params, /*OUT*/ mco_iot_comm_h *comm);
 

Arguments

params The mco_iot_comm_params_t structure containing the initialized parameters
comm The communicator object handle

Description

This function creates a communicator object and returns the handle in comm.

Return Codes

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

Example

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));
        ...
    }
     

Files

Header file:
mcoiot.h
Source file:
mcoiotcomm.c
Library:
libmcoiotcomm.a