# Active Replication Fabric API

> The Active Replication Fabric Applications in C page describes the general principles of eXtremeDB Active Replication Fabric application design and implementation.

> Please use the links below to view Reference Guide pages for the eXtremeDB Active Replication Fabric API functions:

> mco_iot_init | Initialize the ARF (IoT) runtime
> Communicator Functions
> mco_iot_comm_params_init | Set the default values for the communicator
> mco_iot_comm_create | Create a communicator object
> mco_iot_comm_register_callback | Register callback functions
> mco_iot_comm_unregister_callback | Delete the callback function from the specified context
> mco_iot_comm_listen | Create a socket to listen on the specified IP address
> mco_iot_comm_stop_listen | Close the listen socket
> mco_iot_comm_connect_async | Call `connect()` on the specified address asynchronously
> mco_iot_comm_stop_connect | Interrupt the asynchronous connect initiated through the `mco_iot_comm_connect_async()`
> mco_iot_comm_find_conn | Find a connection by `agentId`
> mco_iot_comm_next_conn | Get the next active connection
> mco_iot_comm_stop | Stop the communicator
> mco_iot_comm_destroy | Destroy the communicator
> Connection handle API
> mco_iot_conn_get_address | Return the connection address
> mco_iot_conn_get_agent_id | Return the remote node `agentId`
> mco_iot_conn_get_stat | Receive connection statistics
> mco_iot_conn_get_error | Receive the last error description
> mco_iot_conn_get_comm | Return the communicator the current connection belongs to
> mco_iot_conn_release | Release the "pinned" connection
> mco_iot_conn_disconnect | Drop the connection
> Replicator Functions
> mco_iot_replicator_params_init | Set the default values for the replicator
> mco_iot_replicator_create | Create a replicator object
> mco_iot_replicator_connect | Call `connect()` synchronously
> mco_iot_replicator_get_comm | Return the underlying communicator for the specified replicator
> mco_iot_replicator_get_agent_id | Return the `agent_id` of the specified node
> mco_iot_replicator_get_level | Return the level of the specified node
> mco_iot_replicator_set_level | Changes the level of the router at runtime
> mco_iot_replicator_sync | Start the node's synchronization
> mco_iot_replicator_clear | Delete data that have been transmitted and acknowledged by the peer
> mco_iot_replicator_clear_class | Delete data only from the specified class that have been transmitted and acknowledged by the peer
> mco_iot_replicator_enum_agents | Enumerate the active connections
> mco_iot_replicator_stop | Stop the replicator
> mco_iot_replicator_destroy | Destroy the replicator