mco_iot_comm_stop

Stop the communicator.

For an overview see page ARF Applications in C

Prototype

 
    MCO_RET mco_iot_comm_stop(mco_iot_comm_h comm)
 

Arguments

comm The communicator object

Description

The function stops the communicator "gracefully"; i.e. it waits for all active and queued callbacks to complete. Also the work flows for all connections are consistent, e.g. for each active connection the onDisconnect() and onDestroy() callbacks are called.

Return Codes

MCO_S_OK Communicator successfully stopped
MCO_E_IOT_INVALID_HANDLE The communicator handle comm is invalid

Example

The code snippet below initializes the ARF (IoT) runtime, opens and connects the database, creates the communicator then stops 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));
        ...
        CHECK(mco_iot_comm_stop(comm));
        ...
    }
     

Files

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