int main(void)
{
    /* Create and initialise server session */
    AwaServerSession * session = AwaServerSession_New();

    /* Use default IPC configuration */
    AwaServerSession_Connect(session);

    /* Create WRITE operation */
    AwaServerWriteOperation * operation = AwaServerWriteOperation_New(session, AwaWriteMode_Update);

    /*
     * This example uses object /2 which is the Lwm2m ACL object.
     */

    /* Create a new object instance by specifying the object instance path */
    AwaServerWriteOperation_CreateObjectInstance(operation, "/2/10");
    AwaServerWriteOperation_Perform(operation, CLIENT_ID, OPERATION_PERFORM_TIMEOUT);

    /* Operations must be freed after use */
    AwaServerWriteOperation_Free(&operation);

    AwaServerSession_Disconnect(session);
    AwaServerSession_Free(&session);
    return 0;
}
static int CreateTargets(const AwaServerSession * session, AwaServerWriteOperation * operation, const char * clientID, char ** targets, unsigned int numCreates)
{
    int count = 0;
    int i = 0;

    // Handle object instance creates
    Debug("Filtering for Object Instance creates\n");
    for (i = 0; i < numCreates; ++i)
    {
        Target * target = CreateTarget(targets[i]);
        if (Server_IsObjectTarget(session, target) || Server_IsObjectInstanceTarget(session, target))
        {
            if (AwaServerWriteOperation_CreateObjectInstance(operation, target->Path) == AwaError_Success)
            {
                Verbose("Create %s\n", target->Path);
                ++count;
            }
        }
        else
        {
            // Skip it
            Debug("Skipping %s (%d)\n", targets[i], i);
        }
        FreeTarget(&target);
    }
    return count;
}