From: <svn...@op...> - 2009-09-12 14:48:40
|
Author: bellmich Date: Sat Sep 12 16:48:23 2009 New Revision: 1262 URL: http://libsyncml.opensync.org/changeset/1262 Log: - fixed wrong error check in data_sync_client.c - fixed wrong header file include position in sml_data_sync.h - added function sml_data_sync_session_get_data_sync - added function sml_data_sync_data_store_session_get_data_sync_session - fixed include file position in sml_data_sync_session.h - fixed data_sync_api tests All tests are migrated to the new data sync API. Only two tests are not working because the 0.5.x versions does not adapt so good to the remote peer's behaviour. Modified: trunk/libsyncml/data_sync_api/data_sync_client.c trunk/libsyncml/data_sync_api/data_sync_devinf.c trunk/libsyncml/data_sync_api/sml_data_sync.h trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.h trunk/libsyncml/data_sync_api/sml_data_sync_session.c trunk/libsyncml/data_sync_api/sml_data_sync_session.h trunk/libsyncml/data_sync_api/sml_data_sync_session_internals.h trunk/tests/CMakeLists.txt trunk/tests/check_data_sync_api.c Modified: trunk/libsyncml/data_sync_api/data_sync_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_client.c Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/data_sync_client.c Sat Sep 12 16:48:23 2009 (r1262) @@ -363,7 +363,7 @@ smlTrace(TRACE_INTERNAL, "preparing DsServer (datastore) %s", sml_location_get_uri(sml_data_sync_data_store_get_local(datastore))); - if (sml_data_sync_data_store_client_init(datastore, error)) + if (!sml_data_sync_data_store_client_init(datastore, error)) goto error; /* And we also add the devinfo to the devinf agent */ Modified: trunk/libsyncml/data_sync_api/data_sync_devinf.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_devinf.c Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/data_sync_devinf.c Sat Sep 12 16:48:23 2009 (r1262) @@ -524,7 +524,7 @@ SmlDataSyncDataStore *datastore, GError **error) { - smlTrace(TRACE_ENTRY, "%s (%p, %p)", __func__, devinf, datastore); + smlTrace(TRACE_ENTRY, "%s (%p, %p, %p)", __func__, devinf, datastore, error); CHECK_ERROR_REF smlAssert(datastore); smlAssert(datastore->priv->content_type); Modified: trunk/libsyncml/data_sync_api/sml_data_sync.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync.h Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync.h Sat Sep 12 16:48:23 2009 (r1262) @@ -22,7 +22,6 @@ #define __SML_DATA_SYNC_H__ #include <glib-object.h> -#include "sml_data_sync_session.h" G_BEGIN_DECLS @@ -64,6 +63,8 @@ GObjectClass parent_class; }; +#include "sml_data_sync_session.h" + GType sml_data_sync_get_type (void); SmlDataSync* sml_data_sync_new (void); gboolean sml_data_sync_set_transport_type (SmlDataSync *self, SmlTransportType type, GError **error); Modified: trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Sat Sep 12 16:48:23 2009 (r1262) @@ -532,6 +532,12 @@ return self->priv->data_store; } +SmlDataSyncSession* +sml_data_sync_data_store_session_get_data_sync_session (SmlDataSyncDataStoreSession *self) +{ + return self->priv->data_sync_session; +} + void sml_data_sync_data_store_session_set_session (SmlDataSyncDataStoreSession *self, SmlDsSession *session) Modified: trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.h Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.h Sat Sep 12 16:48:23 2009 (r1262) @@ -80,12 +80,14 @@ typedef gboolean (* SmlDataSyncDataStoreSessionSetAnchorCallback) (SmlDataSyncDataStoreSession *self, gboolean remote, const gchar *value, void *userdata, GError **error); #include "sml_data_sync_data_store.h" +#include "sml_data_sync_session.h" GType sml_data_sync_data_store_session_get_type (void); gboolean sml_data_sync_data_store_session_add_change (SmlDataSyncDataStoreSession *self, SmlDataSyncChangeItem *item, void *userdata, GError **error); gboolean sml_data_sync_data_store_session_add_mapping (SmlDataSyncDataStoreSession *self, SmlMapItem *item, void *userdata, GError **error); -SmlDataSyncDataStore* sml_data_sync_data_store_session_get_data_store (SmlDataSyncDataStoreSession *self); +SmlDataSyncDataStore* sml_data_sync_data_store_session_get_data_store (SmlDataSyncDataStoreSession *self); +SmlDataSyncSession* sml_data_sync_data_store_session_get_data_sync_session (SmlDataSyncDataStoreSession *self); G_END_DECLS Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session.c Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session.c Sat Sep 12 16:48:23 2009 (r1262) @@ -207,6 +207,12 @@ return self->priv->session; } +SmlDataSync* +sml_data_sync_session_get_data_sync (SmlDataSyncSession *self) +{ + return self->priv->data_sync; +} + SmlDataSyncDataStoreSession* sml_data_sync_session_get_data_store_session (SmlDataSyncSession *self, SmlDataSyncDataStore *datastore, Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session.h Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session.h Sat Sep 12 16:48:23 2009 (r1262) @@ -24,7 +24,6 @@ #include <glib-object.h> #include <libsyncml/dev_inf_api/sml_dev_inf.h> #include "sml_location.h" -#include "sml_data_sync_data_store.h" G_BEGIN_DECLS @@ -62,11 +61,15 @@ GObjectClass parent_class; }; +#include "sml_data_sync.h" +#include "sml_data_sync_data_store.h" + GType sml_data_sync_session_get_type (void); SmlLocation* sml_data_sync_session_get_remote (SmlDataSyncSession *self); gboolean sml_data_sync_session_send_changes (SmlDataSyncSession *self, GError **error); gboolean sml_data_sync_session_abort (SmlDataSyncSession *self, GError **error); +SmlDataSync* sml_data_sync_session_get_data_sync (SmlDataSyncSession *self); SmlDataSyncDataStoreSession* sml_data_sync_session_get_data_store_session (SmlDataSyncSession *self, SmlDataSyncDataStore *datastore, GError **error); G_END_DECLS Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session_internals.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session_internals.h Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session_internals.h Sat Sep 12 16:48:23 2009 (r1262) @@ -30,7 +30,7 @@ SmlDataSyncSession* sml_data_sync_session_new (SmlSession *session, SmlDataSync *sync, GError **error); -SmlSession* sml_data_sync_session_get_session (SmlDataSyncSession *self); +SmlSession* sml_data_sync_session_get_session (SmlDataSyncSession *self); gboolean sml_data_sync_session_check (SmlDataSyncSession *self); gboolean sml_data_sync_session_dispatch (SmlDataSyncSession *self); Modified: trunk/tests/CMakeLists.txt ============================================================================== --- trunk/tests/CMakeLists.txt Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/tests/CMakeLists.txt Sat Sep 12 16:48:23 2009 (r1262) @@ -510,14 +510,14 @@ ADD_MOBILE_TEST( nokia_9500_vcard_vcal ${TEST_TARGET_LIBRARIES} ) ENDIF ( ENABLE_OBEX AND ENABLE_OPENOBEX_TCP AND ENABLE_WBXML AND ENABLE_GLIB2_GREGEX ) -# IF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) -# SML_START_TEST( "OMA DS API" ds_api check_data_sync_api.c ${TEST_TARGET_LIBRARIES} ) -# SML_ADD_TESTCASE( ds_api_text_vcard_21 ) -# SML_ADD_TESTCASE( ds_api_image_jpeg ) -# SML_ADD_TESTCASE( ds_api_unknown_ct ) -# SML_ADD_TESTCASE( ds_api_multi_text_vcard_21 ) -# SML_END_TEST() -# ENDIF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) + IF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) + SML_START_TEST( "OMA DS API" ds_api check_data_sync_api.c ${TEST_TARGET_LIBRARIES} ) + SML_ADD_TESTCASE( ds_api_text_vcard_21 ) + SML_ADD_TESTCASE( ds_api_image_jpeg ) + SML_ADD_TESTCASE( ds_api_unknown_ct ) + SML_ADD_TESTCASE( ds_api_multi_text_vcard_21 ) + SML_END_TEST() + ENDIF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) ENDIF( ENABLE_UNIT_TEST ) Modified: trunk/tests/check_data_sync_api.c ============================================================================== --- trunk/tests/check_data_sync_api.c Fri Sep 11 23:16:10 2009 (r1261) +++ trunk/tests/check_data_sync_api.c Sat Sep 12 16:48:23 2009 (r1262) @@ -22,10 +22,8 @@ #include "tests/support.h" -#include <libsyncml/data_sync_api/defines.h> -#include <libsyncml/data_sync_api/standard.h> -#include <libsyncml/data_sync_api/callbacks.h> -#include <glib.h> +#include <libsyncml/data_sync_api/sml_data_sync_defines.h> +#include <libsyncml/data_sync_api/sml_data_sync.h> #include <string.h> @@ -33,10 +31,10 @@ int locks; GList *client_items; -SmlDataSyncObject *client; -SmlDataSyncObject *server; -const char *client_source; -const char *server_source; +SmlDataSync *client; +SmlDataSync *server; +SmlDataSyncDataStore *client_data_store; +SmlDataSyncDataStore *server_data_store; const char *transport; @@ -44,12 +42,20 @@ /* *********** CALLBACKS ************** */ /* ************************************ */ -gboolean sendAllChanges( - SmlDataSyncObject *dsObject, +gboolean +sendAllChanges (SmlDataSyncSession *session, GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); + SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(session); + SmlDataSyncDataStoreSession *dss = NULL; + if (dsObject == client) + dss = sml_data_sync_session_get_data_store_session(session, client_data_store, error); + else + dss = sml_data_sync_session_get_data_store_session(session, server_data_store, error); + sml_fail_unless(dss != NULL, "%s", GET_ERROR_MESSAGE((*error))); + if (dsObject == client) { GList *list = client_items; @@ -59,64 +65,75 @@ count++; const char *test_data = list->data; char *name = g_strdup_printf("%d", count); - if (!smlDataSyncAddChange(client, client_source, SML_CHANGE_ADD, - name , test_data, strlen(test_data), NULL, error)) { - sml_fail_unless(FALSE, "%s", (*error)->message); - } + SmlLocation *loc = sml_location_new(); + sml_location_set_uri(loc, name); smlSafeCFree(&name); + + SmlDataSyncChangeItem *item = sml_data_sync_change_item_new(); + sml_data_sync_change_item_set_action(item, SML_CHANGE_ADD); + sml_fail_unless(sml_data_sync_change_item_set_data(item, list->data, 0, error), "%s", GET_ERROR_MESSAGE((*error))); + sml_fail_unless(sml_data_sync_change_item_set_location(item, loc, error), "%s", GET_ERROR_MESSAGE((*error))); + g_object_unref(loc); + loc = NULL; + + sml_fail_unless(sml_data_sync_data_store_session_add_change(dss, item, NULL, error), "%s", GET_ERROR_MESSAGE((*error))); } } smlTrace(TRACE_EXIT, "%s", __func__); - return smlDataSyncSendChanges(dsObject, error); + return sml_data_sync_session_send_changes(session, error); } -static void recvEventCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncEventType type, - void *userdata, - const GError *error) +static void +recvEventCallback (SmlDataSyncSession *session, + SmlDataSync *dsObject, + SmlDataSyncEventType type, + void *userdata, + const GError *error) { smlTrace(TRACE_ENTRY, "%s(%p, %i, %p, %p)", __func__, dsObject, type, userdata, error); GError *locerror = NULL; + + //if (!dsObject) + // dsObject = sml_data_sync_session_get_data_sync(session); switch (type) { - case SML_DATA_SYNC_EVENT_ERROR: + case SML_DATA_SYNC_SESSION_EVENT_ERROR: if (dsObject == client) { sml_fail_unless(FALSE, "OMA DS client failed: %s", error->message); } else { sml_fail_unless(FALSE, "OMA DS server failed: %s", error->message); } break; - case SML_DATA_SYNC_EVENT_CONNECT: + case SML_DATA_SYNC_SESSION_EVENT_CONNECT: /* g_message("Remote device was successfully connected."); */ break; - case SML_DATA_SYNC_EVENT_DISCONNECT: + case SML_DATA_SYNC_SESSION_EVENT_DISCONNECT: /* g_message("Remote device was successfully disconnected."); */ break; - case SML_DATA_SYNC_EVENT_FINISHED: + case SML_DATA_SYNC_SESSION_EVENT_FINISHED: /* g_message("SyncML session finished successfully."); */ if (g_atomic_int_dec_and_test(&locks)) g_mutex_unlock(runMutex); break; - case SML_DATA_SYNC_EVENT_GOT_ALL_ALERTS: + case SML_DATA_SYNC_SESSION_EVENT_GOT_ALL_ALERTS: /* g_message("All alerts of the remote device were received."); */ if (dsObject == client) { - if (!sendAllChanges(dsObject, &locerror)) + if (!sendAllChanges(session, &locerror)) goto error; } break; - case SML_DATA_SYNC_EVENT_GOT_ALL_CHANGES: + case SML_DATA_SYNC_SESSION_EVENT_GOT_ALL_CHANGES: /* g_message("All changes of the remote device were received."); */ if (dsObject == server) { - if (!sendAllChanges(dsObject, &locerror)) + if (!sendAllChanges(session, &locerror)) goto error; } /* the map of the client is send automatically */ break; - case SML_DATA_SYNC_EVENT_GOT_ALL_MAPPINGS: + case SML_DATA_SYNC_SESSION_EVENT_GOT_ALL_MAPPINGS: if (dsObject == server) { /* g_message("All mappings of the remote device were received."); */ @@ -139,28 +156,28 @@ exit(3); } -static gboolean recvChangeCallback( - SmlDataSyncObject *dsObject, - const char *source, - SmlChangeType type, - const char *uid, - char *data, - gsize size, - void *userdata, - GError **error) +static gboolean +recvChangeCallback (SmlDataSyncDataStoreSession *session, + SmlDataSyncChangeItem *item, + void *userdata, + GError **error) { - smlTrace(TRACE_ENTRY, "%s: %s ==> %s(%p, %d, %p, %d, %p, %p)", __func__, VA_STRING(source), VA_STRING(uid), dsObject, type, data, size, userdata, error); + smlTrace(TRACE_ENTRY, "%s: (%p, %p, %p, %p)", __func__, session, item, userdata, error); /* clients should never receive a change in this test */ + SmlDataSyncDataStore *datastore = sml_data_sync_data_store_session_get_data_store(session); + SmlDataSyncSession *dss = sml_data_sync_data_store_session_get_data_sync_session(session); + SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(dss); + if (dsObject == client) { sml_fail_unless(FALSE, "A change was received from the server."); } /* check the source */ - if (strcmp(server_source, source)) { - sml_fail_unless(FALSE, "The source %s is wrong.", server_source); + if (datastore == client_data_store) { + sml_fail_unless(FALSE, "The data store is wrong (from client)."); } /* handle the item */ @@ -170,6 +187,7 @@ count++; /* test the uid */ + const gchar *uid = sml_location_get_full_uri(sml_data_sync_change_item_get_location(item)); char *name = g_strdup_printf("%d", count); if (strcmp(name, uid)) { smlSafeCFree(&name); @@ -178,11 +196,11 @@ smlSafeCFree(&name); /* item with correct uid */ + const gchar *data = sml_data_sync_change_item_get_data(item); if (strcmp(list->data, data)) { sml_fail_unless(FALSE, "The data of the item %s was wrong(%s != %s).", uid, data, list->data); } } - smlSafeCFree(&data); smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; @@ -255,36 +273,38 @@ #endif if (!strcmp(transport, "HTTP")) { - client = smlDataSyncNew(SML_SESSION_TYPE_CLIENT, SML_TRANSPORT_HTTP_CLIENT, &error); - if (!client) + client = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(client, SML_SESSION_TYPE_CLIENT, &error)) + goto error; + if (!sml_data_sync_set_transport_type(client, SML_TRANSPORT_HTTP_CLIENT, &error)) + goto error; + server = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(server, SML_SESSION_TYPE_SERVER, &error)) goto error; - server = smlDataSyncNew(SML_SESSION_TYPE_SERVER, SML_TRANSPORT_HTTP_SERVER, &error); - if (!server) + if (!sml_data_sync_set_transport_type(server, SML_TRANSPORT_HTTP_SERVER, &error)) goto error; } else { - client = smlDataSyncNew(SML_SESSION_TYPE_CLIENT, SML_TRANSPORT_OBEX_SERVER, &error); - if (!client) + client = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(client, SML_SESSION_TYPE_CLIENT, &error)) goto error; - server = smlDataSyncNew(SML_SESSION_TYPE_SERVER, SML_TRANSPORT_OBEX_CLIENT, &error); - if (!server) + if (!sml_data_sync_set_transport_type(client, SML_TRANSPORT_OBEX_SERVER, &error)) + goto error; + server = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(server, SML_SESSION_TYPE_SERVER, &error)) + goto error; + if (!sml_data_sync_set_transport_type(server, SML_TRANSPORT_OBEX_CLIENT, &error)) goto error; } /* default configuration of callbacks */ - smlDataSyncRegisterEventCallback(client, recvEventCallback, NULL); - smlDataSyncRegisterEventCallback(server, recvEventCallback, NULL); - // smlDataSyncRegisterGetAlertTypeCallback(client, recvAlertTypeCallback, NULL); - // smlDataSyncRegisterGetAlertTypeCallback(server, recvAlertTypeCallback, NULL); - smlDataSyncRegisterChangeCallback(client, recvChangeCallback, NULL); - smlDataSyncRegisterChangeCallback(server, recvChangeCallback, NULL); - // smlDataSyncRegisterChangeStatusCallback(dsObject, recvChangeStatusCallback); - // smlDataSyncRegisterMappingCallback(dsObject, recvMappingCallback, NULL); + sml_data_sync_register_event_callback(client, recvEventCallback, NULL); + sml_data_sync_register_event_callback(server, recvEventCallback, NULL); /* configure transport */ if (!strcmp(transport, "HTTP")) { /* HTTP */ char *url = g_strdup_printf("http://127.0.0.1:%s", port); - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( client, SML_TRANSPORT_CONFIG_URL, url, &error)) @@ -292,30 +312,30 @@ smlSafeCFree(&url); } else { /* OBEX */ - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( client, SML_DATA_SYNC_CONFIG_CONNECTION_TYPE, SML_DATA_SYNC_CONFIG_CONNECTION_NET, &error)) goto error; - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( server, SML_DATA_SYNC_CONFIG_CONNECTION_TYPE, SML_DATA_SYNC_CONFIG_CONNECTION_NET, &error)) goto error; - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( server, SML_TRANSPORT_CONFIG_URL, "127.0.0.1", &error)) goto error; - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( client, SML_TRANSPORT_CONFIG_PORT, port, &error)) goto error; } - if (!smlDataSyncSetOption( + if (!sml_data_sync_set_option( server, SML_TRANSPORT_CONFIG_PORT, port, &error)) @@ -334,27 +354,27 @@ /* init the sync */ if (!strcmp(transport, "HTTP")) { - if (!smlDataSyncInit(server, &error)) + if (!sml_data_sync_initialize(server, &error)) goto error; - if (!smlDataSyncInit(client, &error)) + if (!sml_data_sync_initialize(client, &error)) goto error; - if (!smlDataSyncRun(server, &error)) + if (!sml_data_sync_run(server, &error)) goto error; - if (!smlDataSyncRun(client, &error)) + if (!sml_data_sync_run(client, &error)) goto error; } else { - if (!smlDataSyncInit(client, &error)) + if (!sml_data_sync_initialize(client, &error)) goto error; - if (!smlDataSyncInit(server, &error)) + if (!sml_data_sync_initialize(server, &error)) goto error; - if (!smlDataSyncRun(client, &error)) + if (!sml_data_sync_run(client, &error)) goto error; /* The OBEX server needs some time to start. */ if (g_getenv("SYNCML_TRACE")) sleep(2); else sleep(5); - if (!smlDataSyncRun(server, &error)) + if (!sml_data_sync_run(server, &error)) goto error; } @@ -366,8 +386,8 @@ runMutex = NULL; /* close the object */ - smlDataSyncObjectUnref(&client); - smlDataSyncObjectUnref(&server); + g_object_unref(client); + g_object_unref(server); g_list_free(client_items); return; @@ -383,21 +403,19 @@ /* register datastore * the source must be identical because this is http */ - client_source = "contacts"; - server_source = "contacts"; - if (!smlDataSyncAddDatastore( - client, - "text/x-vcard", - NULL, - client_source, - &error)) + + client_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client, client_data_store, &error)) goto error; - if (!smlDataSyncAddDatastore( - server, - "text/x-vcard", - NULL, - server_source, - &error)) + + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; /* configure test data */ @@ -419,24 +437,22 @@ /* register datastore * the source must be identical if this is http */ - client_source = "dcim"; + + client_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client_data_store, "image/jpeg"); + sml_data_sync_data_store_set_local_uri (client_data_store, "dcim"); + sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client, client_data_store, &error)) + goto error; + + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "image/jpeg"); if (!strcmp(transport, "OBEX")) - server_source = "photos"; + sml_data_sync_data_store_set_local_uri (server_data_store, "photos"); else - server_source = "dcim"; - if (!smlDataSyncAddDatastore( - client, - "image/jpeg", - NULL, - client_source, - &error)) - goto error; - if (!smlDataSyncAddDatastore( - server, - "image/jpeg", - NULL, - server_source, - &error)) + sml_data_sync_data_store_set_local_uri (server_data_store, "dcim"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; /* configure test data */ @@ -458,21 +474,19 @@ /* register datastore * the source must be identical because this is http */ - client_source = "data"; - server_source = "data"; - if (!smlDataSyncAddDatastore( - client, - "unknown/content-type", - NULL, - client_source, - &error)) + + client_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client_data_store, "unknown/content-type"); + sml_data_sync_data_store_set_local_uri (client_data_store, "data"); + sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client, client_data_store, &error)) goto error; - if (!smlDataSyncAddDatastore( - server, - "unknown/content-type", - NULL, - server_source, - &error)) + + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "unknown/content-type"); + sml_data_sync_data_store_set_local_uri (server_data_store, "data"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; /* configure test data */ @@ -494,21 +508,19 @@ /* register datastore * the source must be identical because this is http */ - client_source = "contacts"; - server_source = "contacts"; - if (!smlDataSyncAddDatastore( - client, - "text/x-vcard", - NULL, - client_source, - &error)) + + client_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client, client_data_store, &error)) goto error; - if (!smlDataSyncAddDatastore( - server, - "text/x-vcard", - NULL, - server_source, - &error)) + + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; /* configure test data */ |