# mco_iot_replicator_destroy

Destroy the replicator.

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

### Prototype

        MCO_RET mco_iot_replicator_destroy(mco_iot_replicator_h repl);

### Arguments

repl | The replicator object

### Description

The function destroys the replicator.

### Return Codes

MCO_S_OK | Replicator successfully destroyed
MCO_E_IOT_INVALID_HANDLE | Invalid replicator handle `repl`

### Example

The code snippet below initializes the ARF (IoT) runtime, opens and connects the database, creates the communicator and replicator objects, then connects, synchronizes, stops and destroys the replicator:

        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));
            mco_iot_replicator_params_init(&repl_params);
            CHECK(mco_iot_replicator_create(db, comm, &repl_params, &repl));
            ...
            CHECK(mco_iot_replicator_connect(repl, conn_string, 2*1000, 0));
            ...
            CHECK(mco_iot_replicator_sync(repl, MCO_IOT_SERVER_AGENT_ID, MCO_IOT_SYNC_PULL | MCO_IOT_SYNC_PUSH | MCO_IOT_SYNC_WAIT));
            ...
            CHECK(mco_iot_replicator_stop(repl));
            CHECK(mco_iot_comm_stop(comm));
            CHECK(mco_iot_replicator_destroy(repl));
            ...
        }

### Files

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