# mco_iot_init

Initialize the ARF (IoT) runtime.

### For an overview see page ARF Applications in C

### Prototype

        MCO_RET mco_iot_init();

### Arguments

void | No arguments

### Description

This function initializes the ARF (IoT) runtime. It must be called in each process prior to creating and connecting to the database. (Note that this functionality is similar to the `mco_cluster_init()` and `mco_HA_start()`.)

### Return Codes

MCO_S_OK | ARF runtime successfully initialized

### Example

The code snippet below initializes the ARF (IoT) runtime and optionally adjusts the automatically generated IoT `agent_id` prior to opening the database

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

### Files

Header file:
mcoiot.h
Source file:
mcoiotdb.c
Library:
libmcoiotrepl.a