global: remove Neardal Context Allocation/Desallocation (allocated statically)
authorFrederic PAUT <frederic.paut@linux.intel.com>
Tue, 6 Mar 2012 16:23:33 +0000 (17:23 +0100)
committerFrederic PAUT <frederic.paut@linux.intel.com>
Tue, 6 Mar 2012 16:23:33 +0000 (17:23 +0100)
Simplifying Neardal APIs and source code.

13 files changed:
lib/neardal.c
lib/neardal.h
lib/neardal_adapter.c
lib/neardal_adapter.h
lib/neardal_manager.c
lib/neardal_manager.h
lib/neardal_prv.h
lib/neardal_record.c
lib/neardal_record.h
lib/neardal_target.c
lib/neardal_target.h
ncl/ncl_cmd.c
ncl/ncl_cmd.h

index 1c46f3e..209a8c2 100644 (file)
 #include <glib-2.0/glib/glist.h>
 #include <glib-2.0/glib/gerror.h>
 
+neardalCtx neardalMgr = {NULL, NULL, {NULL}, NULL, NULL, NULL, NULL, NULL, NULL,
+NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL};
+
+/******************************************************************************
+ * neardal_prv_construct: create NEARDAL object instance, Neard Dbus connection,
+ * register Neard's events
+ *****************************************************************************/
+void neardal_prv_construct(errorCode_t *ec)
+{
+       errorCode_t     err = NEARDAL_SUCCESS;
+
+       if (neardalMgr.proxy != NULL)
+               return;
+
+       NEARDAL_TRACEIN();
+       /* Create DBUS connection */
+       g_type_init();
+       neardalMgr.conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL,
+                                          &neardalMgr.gerror);
+       if (neardalMgr.conn != NULL) {
+               /* We have a DBUS connection, create proxy on Neard Manager */
+               err =  neardal_mgr_create();
+               if (err != NEARDAL_SUCCESS) {
+                       NEARDAL_TRACEF(
+                               "neardal_mgr_create() exit (err %d: %s)\n",
+                               err, neardal_error_get_text(err));
+
+                       /* No Neard daemon, destroying neardal object... */
+                       if (err == NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY) {
+                               neardal_tools_prv_free_gerror(&neardalMgr);
+                       }
+               }
+       } else {
+               NEARDAL_TRACE_ERR("Unable to connect to dbus: %s\n",
+                                neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
+               err = NEARDAL_ERROR_DBUS;
+       }
+
+       if (ec != NULL)
+               *ec = err;
+
+       NEARDAL_TRACEF("Exit\n");
+       return;
+}
+
+
+/******************************************************************************
+ * neardal_destroy: destroy NEARDAL object instance, Disconnect Neard Dbus
+ * connection, unregister Neard's events
+ *****************************************************************************/
+void neardal_destroy(void)
+{
+       NEARDAL_TRACEIN();
+       if (neardalMgr.proxy != NULL) {
+               neardal_tools_prv_free_gerror(&neardalMgr);
+               neardal_mgr_destroy();
+       }
+}
+
 /******************************************************************************
  * neardal_set_cb_adapter_added: setup a client callback for
  * 'NEARDAL adapter added'.
  * cb_adp_added = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
-                                        adapter_cb cb_adp_added,
+errorCode_t neardal_set_cb_adapter_added(adapter_cb cb_adp_added,
                                         void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
+       neardalMgr.cb_adp_added         = cb_adp_added;
+       neardalMgr.cb_adp_added_ud      = user_data;
 
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_adp_added = cb_adp_added;
-               neardalMgr->cb_adp_added_ud = user_data;
-               err = NEARDAL_SUCCESS;
-       }
-
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 /******************************************************************************
@@ -57,19 +111,14 @@ errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
  * 'NEARDAL adapter added'.
  * cb_adp_removed = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
-                                          adapter_cb cb_adp_removed,
+errorCode_t neardal_set_cb_adapter_removed(adapter_cb cb_adp_removed,
                                           void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
 
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_adp_removed      = cb_adp_removed;
-               neardalMgr->cb_adp_removed_ud   = user_data;
-               err                             = NEARDAL_SUCCESS;
-       }
+       neardalMgr.cb_adp_removed       = cb_adp_removed;
+       neardalMgr.cb_adp_removed_ud    = user_data;
 
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 /******************************************************************************
@@ -77,19 +126,14 @@ errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
  * 'NEARDAL Adapter Property Change'.
  * cb_mgr_adp_property_changed = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalMgr,
+errorCode_t neardal_set_cb_adapter_property_changed(
                                        adapter_prop_cb cb_adp_property_changed,
                                        void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
+       neardalMgr.cb_adp_prop_changed          = cb_adp_property_changed;
+       neardalMgr.cb_adp_prop_changed_ud       = user_data;
 
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_adp_prop_changed = cb_adp_property_changed;
-               neardalMgr->cb_adp_prop_changed_ud      = user_data;
-               err                                     = NEARDAL_SUCCESS;
-       }
-
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 /******************************************************************************
@@ -97,19 +141,13 @@ errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalMgr,
  * 'NEARDAL adapter added'.
  * cb_adp_added = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
-                                       target_cb cb_tgt_found,
+errorCode_t neardal_set_cb_target_found(target_cb cb_tgt_found,
                                        void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
+       neardalMgr.cb_tgt_found         = cb_tgt_found;
+       neardalMgr.cb_tgt_found_ud      = user_data;
 
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_tgt_found        = cb_tgt_found;
-               neardalMgr->cb_tgt_found_ud     = user_data;
-               err                             = NEARDAL_SUCCESS;
-       }
-
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 /******************************************************************************
@@ -117,18 +155,13 @@ errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
  * 'NEARDAL adapter added'.
  * cb_adp_removed = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
-                                      target_cb cb_tgt_lost, void *user_data)
+errorCode_t neardal_set_cb_target_lost(target_cb cb_tgt_lost,
+                                      void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
+       neardalMgr.cb_tgt_lost          = cb_tgt_lost;
+       neardalMgr.cb_tgt_lost_ud       = user_data;
 
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_tgt_lost         = cb_tgt_lost;
-               neardalMgr->cb_tgt_lost_ud      = user_data;
-               err                             = NEARDAL_SUCCESS;
-       }
-
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 
@@ -137,19 +170,13 @@ errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
  * 'NEARDAL target record found'.
  * cb_rcd_found = NULL to remove actual callback.
  *****************************************************************************/
-errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
-                                       record_cb cb_rcd_found,
+errorCode_t neardal_set_cb_record_found(record_cb cb_rcd_found,
                                        void *user_data)
 {
-       errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
-
-       if (neardalMgr != NULL) {
-               neardalMgr->cb_rcd_found        = cb_rcd_found;
-               neardalMgr->cb_rcd_found_ud     = user_data;
-               err                             = NEARDAL_SUCCESS;
-       }
+       neardalMgr.cb_rcd_found         = cb_rcd_found;
+       neardalMgr.cb_rcd_found_ud      = user_data;
 
-       return err;
+       return NEARDAL_SUCCESS;
 }
 
 /******************************************************************************
@@ -178,16 +205,17 @@ errorCode_t neardal_free_array(char ***array)
 /******************************************************************************
  * neardal_start_poll: Request Neard to start polling
  *****************************************************************************/
-void neardal_start_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
+void neardal_start_poll(char *adpName, errorCode_t *ec)
 {
-       errorCode_t     err             = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
 
-       if (neardalMgr == NULL)
-               goto exit;
-
-       err = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
-                                         &adpProp);
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+       if (err != NEARDAL_SUCCESS)
+               return;
+       
+       err = neardal_mgr_prv_get_adapter(adpName, &adpProp);
 
        err = NEARDAL_ERROR_NO_ADAPTER;
        if (adpProp == NULL)
@@ -198,16 +226,16 @@ void neardal_start_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
 
        if (!adpProp->polling) {
                org_neard_adp__call_start_poll_sync(adpProp->proxy, NULL, 
-                                               &neardalMgr->gerror);
+                                               &neardalMgr.gerror);
 
                err = NEARDAL_SUCCESS;
-               if (neardalMgr->gerror != NULL) {
+               if (neardalMgr.gerror != NULL) {
                        NEARDAL_TRACE_ERR(
                                "Error with neard dbus method (err:%d:'%s')\n"
-                                       , neardalMgr->gerror->code
-                                       , neardalMgr->gerror->message);
+                                       , neardalMgr.gerror->code
+                                       , neardalMgr.gerror->message);
                        err = NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR;
-                       neardal_tools_prv_free_gerror(neardalMgr);
+                       neardal_tools_prv_free_gerror(&neardalMgr);
                }
        } else
                err = NEARDAL_ERROR_POLLING_ALREADY_ACTIVE;
@@ -220,16 +248,16 @@ exit:
 /******************************************************************************
  * neardal_stop_poll: Request Neard to stop polling
  *****************************************************************************/
-void neardal_stop_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
+void neardal_stop_poll(char *adpName, errorCode_t *ec)
 {
-       errorCode_t     err = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
 
-       if (neardalMgr == NULL)
-               goto exit;
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
 
-       err = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
-                                                  &adpProp);
+       if (err == NEARDAL_SUCCESS)
+               err = neardal_mgr_prv_get_adapter(adpName, &adpProp);
 
        if (adpProp == NULL)
                goto exit;
@@ -239,16 +267,16 @@ void neardal_stop_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
 
        if (adpProp->polling) {
                org_neard_adp__call_stop_poll_sync(adpProp->proxy, NULL,
-                                                  &neardalMgr->gerror);
+                                                  &neardalMgr.gerror);
 
                err = NEARDAL_SUCCESS;
-               if (neardalMgr->gerror != NULL) {
+               if (neardalMgr.gerror != NULL) {
                        NEARDAL_TRACE_ERR(
                                "Error with neard dbus method (err:%d:'%s')\n"
-                                       , neardalMgr->gerror->code
-                                       , neardalMgr->gerror->message);
+                                       , neardalMgr.gerror->code
+                                       , neardalMgr.gerror->message);
                        err = NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR;
-                       neardal_tools_prv_free_gerror(neardalMgr);
+                       neardal_tools_prv_free_gerror(&neardalMgr);
                }
        }
 
@@ -260,17 +288,20 @@ exit:
 /******************************************************************************
  * neardal_publish: Write NDEF record to an NFC tag
  *****************************************************************************/
-errorCode_t neardal_publish(neardal_t neardalMgr, neardal_record *record)
+errorCode_t neardal_publish(neardal_record *record)
 {
-       errorCode_t     err     = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err     = NEARDAL_SUCCESS;
        AdpProp         *adpProp;
        RcdProp         rcd;
 
-       if (neardalMgr == NULL || record == NULL)
+
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || record == NULL)
                goto exit;
 
-       err = neardal_mgr_prv_get_adapter(neardalMgr, (gchar *) record->name,
-                                         &adpProp);
+       err = neardal_mgr_prv_get_adapter((gchar *) record->name, &adpProp);
        if (err != NEARDAL_SUCCESS)
                goto exit;
        rcd.name                = (gchar *) record->name;
@@ -292,21 +323,22 @@ exit:
 /******************************************************************************
  * neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
  *****************************************************************************/
-errorCode_t neardal_get_adapter_properties(neardal_t neardalMgr,
-                                          const char *adpName,
+errorCode_t neardal_get_adapter_properties(const char *adpName,
                                           neardal_adapter *adapter)
 {
-       errorCode_t     err             = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
        TgtProp         *target         = NULL;
        int             ct              = 0;    /* counter */
        gsize           size;
 
-       if (neardalMgr == NULL || adpName == NULL || adapter == NULL)
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || adpName == NULL || adapter == NULL)
                goto exit;
 
-       err = neardal_mgr_prv_get_adapter(neardalMgr, (gchar *) adpName,
-                                         &adpProp);
+       err = neardal_mgr_prv_get_adapter((gchar *) adpName, &adpProp);
        if (err != NEARDAL_SUCCESS)
                goto exit;
 
@@ -358,24 +390,25 @@ exit:
 /******************************************************************************
  * neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
  *****************************************************************************/
-errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
-                                         const char *tgtName,
+errorCode_t neardal_get_target_properties(const char *tgtName,
                                          neardal_target *target)
 {
-       errorCode_t     err             = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
        TgtProp         *tgtProp        = NULL;
        int             ct              = 0;    /* counter */
        RcdProp         *record         = NULL;
        gsize           size;
 
-       if (neardalMgr == NULL || tgtName == NULL || target == NULL)
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || tgtName == NULL || target == NULL)
                goto exit;
 
        target->records = NULL;
        target->tagType = NULL;
-       err = neardal_mgr_prv_get_adapter(neardalMgr, (gchar *) tgtName,
-                                         &adpProp);
+       err = neardal_mgr_prv_get_adapter((gchar *) tgtName, &adpProp);
        if (err != NEARDAL_SUCCESS)
                goto exit;
 
@@ -431,20 +464,24 @@ exit:
  /******************************************************************************
  * neardal_get_record_properties: Get values of a specific target record
   *****************************************************************************/
-errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
-                                         const char *recordName,
+errorCode_t neardal_get_record_properties( const char *recordName,
                                          neardal_record *record)
 {
-       errorCode_t     err             = NEARDAL_ERROR_INVALID_PARAMETER;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
        TgtProp         *tgtProp        = NULL;
        RcdProp         *rcdProp        = NULL;
 
-       if (neardalMgr == NULL || recordName == NULL || record == NULL)
+       if (recordName == NULL || record == NULL)
+               goto exit;
+
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS)
                goto exit;
 
-       err = neardal_mgr_prv_get_adapter(neardalMgr, (gchar *) recordName,
-                                         &adpProp);
+       err = neardal_mgr_prv_get_adapter((gchar *) recordName, &adpProp);
        if (err != NEARDAL_SUCCESS)
                goto exit;
 
@@ -473,69 +510,3 @@ errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
 exit:
        return err;
 }
-
-
-/******************************************************************************
- * neardal_construct: create NEARDAL object instance, Neard Dbus connection,
- * register Neard's events
- *****************************************************************************/
-neardal_t neardal_construct(errorCode_t *ec)
-{
-       neardal_t       neardalMgr      = NULL;
-       errorCode_t     err     = NEARDAL_ERROR_NO_MEMORY;
-
-       NEARDAL_TRACEIN();
-       /* Allocate NEARDAL context */
-       neardalMgr = g_try_malloc0(sizeof(neardalCtx));
-       if (neardalMgr == NULL)
-               goto exit;
-
-       /* Create DBUS connection */
-       g_type_init();
-       neardalMgr->conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL,
-                                          &neardalMgr->gerror);
-       if (neardalMgr->conn != NULL) {
-               /* We have a DBUS connection, create proxy on Neard Manager */
-               err =  neardal_mgr_create(neardalMgr);
-               if (err != NEARDAL_SUCCESS) {
-                       NEARDAL_TRACEF(
-                               "neardal_mgr_create() exit (err %d: %s)\n",
-                               err, neardal_error_get_text(err));
-
-                       /* No Neard daemon, destroying neardal object... */
-                       if (err == NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY) {
-                               neardal_tools_prv_free_gerror(neardalMgr);
-                               g_free(neardalMgr);
-                               neardalMgr = NULL;
-                       }
-               }
-       } else {
-               NEARDAL_TRACE_ERR("Unable to connect to dbus: %s\n",
-                                neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
-               err = NEARDAL_ERROR_DBUS;
-               g_free(neardalMgr);
-               neardalMgr = NULL;
-       }
-
-exit:
-       if (ec != NULL)
-               *ec = err;
-
-       NEARDAL_TRACEF("Exit\n");
-       return neardalMgr;
-}
-
-
-/******************************************************************************
- * neardal_destroy: destroy NEARDAL object instance, Disconnect Neard Dbus
- * connection, unregister Neard's events
- *****************************************************************************/
-void neardal_destroy(neardal_t neardalMgr)
-{
-       NEARDAL_TRACEIN();
-       if (neardalMgr != NULL) {
-               neardal_tools_prv_free_gerror(neardalMgr);
-               neardal_mgr_destroy(&neardalMgr);
-       }
-}
index f50d1a7..f2f1eb5 100644 (file)
@@ -171,59 +171,39 @@ typedef void (*record_cb) (const char *rcdName, void *user_data);
  * @{
 */
 
-/*! \fn neardal_t neardal_construct(errorCode_t *ec)
-*  \brief create NEARDAL object instance, Neard Dbus connection,
-* register Neard's events
-*  \param ec : optional, pointer to store error code
-*  \return the NEARDAL context
-*/
-neardal_t neardal_construct(errorCode_t *ec);
-
-
-/*! \fn void neardal_destroy(neardal_t neardalMgr)
+/*! \fn void neardal_destroy()
 *  \brief destroy NEARDAL object instance, disconnect Neard Dbus connection,
 * unregister Neard's events
-*  \param neardalMgr : NEARDAL context to destroy
 */
-void neardal_destroy(neardal_t neardalMgr);
+void neardal_destroy();
 
-/*! \fn void neardal_start_poll(neardal_t neardalMgr, char *adpName,
- * errorCode_t *ec)
+/*! \fn void neardal_start_poll(char *adpName, errorCode_t *ec)
 *  \brief Request Neard to start polling on specific NEARDAL adapter
-*  \param neardalMgr : NEARDAL context
 *  \param adpName : DBus interface adapter name (as identifier)
 *  \param ec : optional, pointer to store error code
 */
-void neardal_start_poll(neardal_t neardalMgr, char *adpName,
-                        errorCode_t *ec);
+void neardal_start_poll(char *adpName, errorCode_t *ec);
 
-/*! \fn void neardal_stop_poll(neardal_t neardalMgr, char *adpName,
- * errorCode_t *ec)
+/*! \fn void neardal_stop_poll(char *adpName, errorCode_t *ec)
 *  \brief Request Neard to stop polling on specific NEARDAL adapter
-*  \param neardalMgr : NEARDAL context
 *  \param adpName : DBus interface adapter name (as identifier)
 *  \param ec : optional, pointer to store error code
 */
-void neardal_stop_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec);
+void neardal_stop_poll(char *adpName, errorCode_t *ec);
 
-/*! \fn errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
- * int *len)
+/*! \fn errorCode_t neardal_get_adapters(char ***array, int *len)
  * @brief get an array of NEARDAL adapters present
  *
- * @param neardalMgr NEARDAL context
- * @param array array of DBus interface adapter name (as identifier), use @link
+* @param array array of DBus interface adapter name (as identifier), use @link
  * neardal_free_array @endlink(& ) to free
  * @param len (optional), number of adapters
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
-                                 int *len);
+errorCode_t neardal_get_adapters(char ***array, int *len);
 
-/*! \fn errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
- *                                  char ***array, int *len)
+/*! \fn errorCode_t neardal_get_targets(char *adpName, char ***array, int *len)
  * @brief get an array of NEARDAL targets present
  *
- * @param neardalMgr NEARDAL context
  * @param adpName adapter name (identifier) on which targets list must be
  * retrieve
  * @param array array of DBus interface target name (as identifier), use @link
@@ -231,14 +211,11 @@ errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
  * @param len (optional), number of targets
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
-                                char ***array, int *len);
+errorCode_t neardal_get_targets(char *adpName, char ***array, int *len);
 
-/*! \fn errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
- *                                  char ***array, int *len)
+/*! \fn errorCode_t neardal_get_records(char *tgtName, char ***array, int *len)
  * @brief get an array of NEARDAL records present
  *
- * @param neardalMgr NEARDAL context
  * @param tgtName target name (identifier) on which records list must be
  * retrieve
  * @param array array of DBus interface record name (as identifier), use @link
@@ -246,8 +223,7 @@ errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
  * @param len (optional), number of records
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
-                                char ***array, int *len);
+errorCode_t neardal_get_records(char *tgtName, char ***array, int *len);
 
 /*! @fn errorCode_t neardal_free_array(char ***array)
  *
@@ -263,139 +239,118 @@ errorCode_t neardal_free_array(char ***array);
  * const char* adpName, neardal_adapter *adapter)
  * @brief Get properties of a specific NEARDAL adapter
  *
- * @param neardalMgr NEARDAL context
  * @param adpName DBus interface adapter name (as identifier)
  * @param adapter Pointer on client adapter struct to store datas
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_adapter_properties(neardal_t neardalMgr,
-                                           const char *adpName,
-                                           neardal_adapter *adapter);
+errorCode_t neardal_get_adapter_properties(const char *adpName,
+                                          neardal_adapter *adapter);
 
-/*! \fn errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
- *                                          adapter_cb cb_adp_added,
+/*! \fn errorCode_t neardal_set_cb_adapter_added( adapter_cb cb_adp_added,
  *                                          void * user_data)
  * @brief setup a client callback for 'NEARDAL adapter added'. cb_adp_added = NULL
  * to remove actual callback
  *
- * @param neardalMgr NEARDAL context
  * @param cb_adp_added Client callback 'adapter added'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
-                                         adapter_cb cb_adp_added,
-                                         void *user_data);
+errorCode_t neardal_set_cb_adapter_added(adapter_cb cb_adp_added,
+                                        void *user_data);
 
-/*! \fn errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
- *                                            adapter_cb cb_adp_removed,
+/*! \fn errorCode_t neardal_set_cb_adapter_removed(adapter_cb cb_adp_removed,
  *                                            void * user_data)
  * @brief setup a client callback for 'NEARDAL adapter removed'.
  * cb_adp_removed = NULL to remove actual callback
  *
- * @param neardalMgr NEARDAL context
  * @param cb_adp_removed Client callback 'adapter removed'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
-                                           adapter_cb cb_adp_removed,
+errorCode_t neardal_set_cb_adapter_removed(adapter_cb cb_adp_removed,
                                            void *user_data);
 
 /*! \fn errorCode_t neardal_set_cb_adapter_property_changed(
- * neardal_t neardalMgr, adapter_prop_cb cb_adp_property_changed,
+ * adapter_prop_cb cb_adp_property_changed,
  * void *user_data)
  * @brief setup a client callback for 'NEARDAL Adapter Property Changed'.
  * cb_adp_property_changed = NULL to remove actual callback.
  *
- * @param neardalMgr NEARDAL context
  * @param cb_adp_property_changed Client callback 'Adapter Property Changed'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalMgr,
+errorCode_t neardal_set_cb_adapter_property_changed(
                                        adapter_prop_cb cb_adp_property_changed,
                                                void *user_data);
 
-/*! \fn errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
- * const char* tgtName, neardal_target *target)
+/*! \fn errorCode_t neardal_get_target_properties(const char* tgtName,
+ * neardal_target *target)
  * @brief Get properties of a specific NEARDAL target
  *
- * @param neardalMgr NEARDAL context
  * @param tgtName target name (identifier) on which properties must be retrieve
  * @param target Pointer on client target struct to store datas
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
-                                          const char *tgtName,
+errorCode_t neardal_get_target_properties(const char *tgtName,
                                           neardal_target *target);
 
-/*! \fn errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
- * target_cb cb_tgt_found, void * user_data)
+/*! \fn errorCode_t neardal_set_cb_target_found(target_cb cb_tgt_found,
+ * void * user_data)
  * @brief setup a client callback for 'NEARDAL target found'.
  * cb_tgt_found = NULL to remove actual callback.
  *
- * @param neardalMgr NEARDAL context
  * @param cb_tgt_found Client callback 'target found'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
-                                        target_cb cb_tgt_found,
+errorCode_t neardal_set_cb_target_found(target_cb cb_tgt_found,
                                         void *user_data);
 
-/*! \fn errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
- * target_cb cb_tgt_lost, void * user_data)
+/*! \fn errorCode_t neardal_set_cb_target_lost(target_cb cb_tgt_lost,
+ * void * user_data)
  * @brief setup a client callback for 'NEARDAL target lost'.
  * cb_tgt_lost = NULL to remove actual callback.
  *
- * @param neardalMgr NEARDAL context
  * @param cb_tgt_lost Client callback 'target lost'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
-                                       target_cb cb_tgt_lost,
+errorCode_t neardal_set_cb_target_lost(target_cb cb_tgt_lost,
                                        void *user_data);
 
 
-/*! \fn errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
- *                                           const char *recordName,
+/*! \fn errorCode_t neardal_get_record_properties(const char *recordName,
  *                                           neardal_record *record)
  * @brief Get properties of a specific NEARDAL target record
  *
- * @param neardalMgr NEARDAL context
  * @param recordName DBus interface record name (as identifier)
  * @param record Pointer on client record struct to store datas
  * @return errorCode_t error code
  **/
-errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
-                                          const char *recordName,
-                                          neardal_record *record);
+errorCode_t neardal_get_record_properties(const char *recordName,
+                                         neardal_record *record);
 
 /*! \fn errorCode_t neardal_publish(neardal_t neardalMgr,
  * neardal_record *record)
  * @brief Write NDEF record to an NFC tag
  *
- * @param neardalMgr NEARDAL context
  * @param record Pointer on client record used to create NDEF record
  * @return errorCode_t error code
  **/
-errorCode_t neardal_publish(neardal_t neardalMgr, neardal_record *record);
+errorCode_t neardal_publish(neardal_record *record);
 
 
-/*! \fn errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
- * record_cb cb_rcd_found, void * user_data)
+/*! \fn errorCode_t neardal_set_cb_record_found( record_cb cb_rcd_found,
+ * void * user_data)
  * @brief Setup a client callback for 'NEARDAL target record found'.
  * cb_rcd_found = NULL to remove actual callback
  *
- * @param neardalMgr NEARDAL context
  * @param cb_rcd_found Client callback 'record found'
  * @param user_data Client user data
  * @return errorCode_t error code
  **/
-errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
-                                        record_cb cb_rcd_found,
+errorCode_t neardal_set_cb_record_found(record_cb cb_rcd_found,
                                         void *user_data);
 
 /* @}*/
index 0e12e4c..7e415d0 100644 (file)
@@ -42,7 +42,6 @@ static void  neardal_adp_prv_cb_target_found(orgNeardTgt *proxy,
 {
        AdpProp         *adpProp        = user_data;
        errorCode_t     err;
-       neardal_t       neardalMgr;
        TgtProp         *tgtProp;
 
        NEARDAL_TRACEIN();
@@ -50,18 +49,14 @@ static void  neardal_adp_prv_cb_target_found(orgNeardTgt *proxy,
        
        g_assert(arg_unnamed_arg0 != NULL);
        g_assert(adpProp != NULL);
-       neardalMgr = adpProp->parent;
-       g_assert(neardalMgr != NULL);
-       
 
        NEARDAL_TRACEF("Adding target '%s'\n", arg_unnamed_arg0);
        /* Invoking Callback 'Target Found' before adding it (otherwise
         * callback 'Record Found' would be called before ) */
-       err = neardal_tgt_add(neardalMgr, adpProp,
-                             (char *) arg_unnamed_arg0);
+       err = neardal_tgt_add((char *) arg_unnamed_arg0, adpProp);
        if (err == NEARDAL_SUCCESS) {
                tgtProp = g_list_nth_data(adpProp->tgtList, 0);
-               neardal_tgt_notify_target_found(neardalMgr, tgtProp);
+               neardal_tgt_notify_target_found(tgtProp);
        }
        NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
                      g_list_length(adpProp->tgtList));
@@ -76,17 +71,14 @@ static void neardal_adp_prv_cb_target_lost(orgNeardTgt *proxy,
                                           void *user_data)
 {
        AdpProp         *adpProp        = user_data;
-       neardal_t       neardalMgr      = adpProp->parent;
        TgtProp         *tgtProp        = NULL;
        errorCode_t     errCode;
 
        NEARDAL_TRACEIN();
-       g_assert(neardalMgr != NULL);
        g_assert(arg_unnamed_arg0 != NULL);
        (void) proxy; /* remove warning */
 
-       neardal_mgr_prv_get_adapter(neardalMgr, (char *) arg_unnamed_arg0,
-                                   &adpProp);
+       neardal_mgr_prv_get_adapter((char *) arg_unnamed_arg0, &adpProp);
 
        NEARDAL_TRACEF("Removing target '%s'\n", arg_unnamed_arg0);
        /* Invoking Callback 'Target Found' before adding it (otherwise
@@ -94,9 +86,9 @@ static void neardal_adp_prv_cb_target_lost(orgNeardTgt *proxy,
        errCode = neardal_mgr_prv_get_target(adpProp, (char *) arg_unnamed_arg0,
                                                  &tgtProp);
        if (errCode == NEARDAL_SUCCESS) {
-               if (neardalMgr->cb_tgt_lost != NULL)
-                       (neardalMgr->cb_tgt_lost)((char *) arg_unnamed_arg0,
-                                             neardalMgr->cb_tgt_lost_ud);
+               if (neardalMgr.cb_tgt_lost != NULL)
+                       (neardalMgr.cb_tgt_lost)((char *) arg_unnamed_arg0,
+                                             neardalMgr.cb_tgt_lost_ud);
                neardal_tgt_remove(tgtProp);
                NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
                              g_list_length(adpProp->tgtList));
@@ -112,7 +104,6 @@ static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
                                                GVariant *arg_unnamed_arg1,
                                                void        *user_data)
 {
-       neardal_t       neardalMgr      = user_data;
        AdpProp         *adpProp        = NULL;
        errorCode_t     errCode         = NEARDAL_ERROR_NO_TARGET;
        char            *tgtName        = NULL;
@@ -122,10 +113,11 @@ static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
        gchar           **tgtArray      = NULL;
 
        (void) proxy; /* remove warning */
+       (void) user_data; /* remove warning */
        NEARDAL_TRACEIN();
        g_assert(arg_unnamed_arg0 != NULL);
 
-       neardal_mgr_prv_get_adapter_from_proxy(neardalMgr, proxy, &adpProp);
+       neardal_mgr_prv_get_adapter_from_proxy(proxy, &adpProp);
        if (adpProp == NULL) {
                errCode = NEARDAL_ERROR_GENERAL_ERROR;
                goto exit;
@@ -140,7 +132,7 @@ static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
        if (!strcmp(arg_unnamed_arg0, "Polling")) {
                adpProp->polling = g_variant_get_boolean  (tmp);                
                clientValue = GUINT_TO_POINTER(adpProp->polling);
-               NEARDAL_TRACEF("neardalMgr->polling=%d\n", adpProp->polling);
+               NEARDAL_TRACEF("neardalMgr.polling=%d\n", adpProp->polling);
        }
 
        if (!strcmp(arg_unnamed_arg0, "Targets")) {
@@ -188,11 +180,11 @@ static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
                g_strfreev(tgtArray);
        }
 
-       if (neardalMgr->cb_adp_prop_changed != NULL)
-               (neardalMgr->cb_adp_prop_changed)(adpProp->name,
+       if (neardalMgr.cb_adp_prop_changed != NULL)
+               (neardalMgr.cb_adp_prop_changed)(adpProp->name,
                                                  (char *) arg_unnamed_arg0,
                                                  clientValue,
-                                       neardalMgr->cb_adp_prop_changed_ud);
+                                       neardalMgr.cb_adp_prop_changed_ud);
        return;
 
 exit:
@@ -213,13 +205,10 @@ static errorCode_t neardal_adp_prv_read_properties(AdpProp *adpProp)
        GVariant        *tmpOut                 = NULL;
        gchar           **tgtArray              = NULL;
        gsize           len;
-       neardal_t       neardalMgr              = NULL;
 
        NEARDAL_TRACEIN();
        g_assert(adpProp != NULL);
        g_assert(adpProp->proxy != NULL);
-       neardalMgr = adpProp->parent;
-       g_assert(neardalMgr != NULL);
 
        org_neard_adp__call_get_properties_sync(adpProp->proxy, &tmp,
                                                NULL, &gerror);
@@ -247,8 +236,7 @@ static errorCode_t neardal_adp_prv_read_properties(AdpProp *adpProp)
                        while (len < adpProp->tgtNb &&
                                errCode == NEARDAL_SUCCESS) {
                                tgtName = tgtArray[len++];
-                               errCode = neardal_tgt_add(neardalMgr, adpProp,
-                                                       tgtName);
+                               errCode = neardal_tgt_add(tgtName, adpProp);
                        }
                }
        }
@@ -309,8 +297,7 @@ errorCode_t neardal_adp_prv_get_target(AdpProp *adpProp, gchar *tgtName,
  * Create a DBus proxy for the first one NFC adapter if present
  * Register Neard Manager signals ('PropertyChanged')
  *****************************************************************************/
-static errorCode_t neardal_adp_prv_init(neardal_t neardalMgr,
-                                            AdpProp *adpProp)
+static errorCode_t neardal_adp_prv_init(AdpProp *adpProp)
 {
        errorCode_t     errCode = NEARDAL_SUCCESS;
 
@@ -335,19 +322,19 @@ static errorCode_t neardal_adp_prv_init(neardal_t neardalMgr,
        if (adpProp->name == NULL)
                return errCode;
 
-       adpProp->proxy = org_neard_adp__proxy_new_sync(neardalMgr->conn,
+       adpProp->proxy = org_neard_adp__proxy_new_sync(neardalMgr.conn,
                                        G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
                                                        NEARD_DBUS_SERVICE,
                                                        adpProp->name,
                                                        NULL, /* GCancellable */
-                                                       &neardalMgr->gerror);
+                                                       &neardalMgr.gerror);
 
-       if (neardalMgr->gerror != NULL) {
+       if (neardalMgr.gerror != NULL) {
                NEARDAL_TRACE_ERR(
                        "Unable to create Neard Adapter Proxy (%d:%s)\n",
-                                neardalMgr->gerror->code,
-                               neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
+                                neardalMgr.gerror->code,
+                               neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
                return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
        }
 
@@ -357,7 +344,7 @@ static errorCode_t neardal_adp_prv_init(neardal_t neardalMgr,
        NEARDAL_TRACE("'PropertyChanged'\n");
        g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_PROPCHANGED,
                        G_CALLBACK (neardal_adp_prv_cb_property_changed),
-                         neardalMgr);
+                         NULL);
 
        /* Register 'TargetFound', 'TargetLost' */
        NEARDAL_TRACEF("Register Neard-Adapter Signal ");
@@ -406,47 +393,49 @@ static void neardal_adp_prv_free(AdpProp **adpProp)
 /******************************************************************************
  * neardal_get_adapters: get an array of NFC adapters (adpName) present
  *****************************************************************************/
-errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
-                                 int *len)
+errorCode_t neardal_get_adapters(char ***array, int *len)
 {
-       errorCode_t     errCode         = NEARDAL_ERROR_NO_ADAPTER;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        int             adpNb           = 0;
        int             ct              = 0;    /* counter */
        char            **adps          = NULL;
        AdpProp         *adapter        = NULL;
        gsize           size;
 
-       if (neardalMgr == NULL || array == NULL)
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || array == NULL)
                return NEARDAL_ERROR_INVALID_PARAMETER;
 
-       adpNb = g_list_length(neardalMgr->prop.adpList);
+       adpNb = g_list_length(neardalMgr.prop.adpList);
        if (adpNb > 0) {
-               errCode = NEARDAL_ERROR_NO_MEMORY;
+               err = NEARDAL_ERROR_NO_MEMORY;
                size = (adpNb + 1) * sizeof(char *);
                adps = g_try_malloc0(size);
                if (adps != NULL) {
                        GList   *list;
                        while (ct < adpNb) {
-                               list = neardalMgr->prop.adpList;
+                               list = neardalMgr.prop.adpList;
                                adapter = g_list_nth_data(list, ct);
                                if (adapter != NULL)
                                        adps[ct++] = g_strdup(adapter->name);
                        }
-                       errCode = NEARDAL_SUCCESS;
+                       err = NEARDAL_SUCCESS;
                }
        }
        if (len != NULL)
                *len = adpNb;
        *array  = adps;
 
-       return errCode;
+       return err;
 }
 
 /******************************************************************************
  * neardal_adp_add: add new NFC adapter, initialize DBus Proxy connection,
  * register adapter signal
  *****************************************************************************/
-errorCode_t neardal_adp_add(neardal_t neardalMgr, gchar *adapterName)
+errorCode_t neardal_adp_add(gchar *adapterName)
 {
        errorCode_t     errCode = NEARDAL_SUCCESS;
        AdpProp         *adpProp = NULL;
@@ -454,7 +443,6 @@ errorCode_t neardal_adp_add(neardal_t neardalMgr, gchar *adapterName)
        TgtProp         *tgtProp;
        gsize           len;
 
-       g_assert(neardalMgr != NULL);
        NEARDAL_TRACEF("Adding adapter:%s\n", adapterName);
 
        adpProp = g_try_malloc0(sizeof(AdpProp));
@@ -462,25 +450,25 @@ errorCode_t neardal_adp_add(neardal_t neardalMgr, gchar *adapterName)
                return NEARDAL_ERROR_NO_MEMORY;
 
        adpProp->name = g_strdup(adapterName);
-       adpProp->parent = neardalMgr;
+       adpProp->parent = &neardalMgr;
        
-       adpList = &neardalMgr->prop.adpList;
+       adpList = &neardalMgr.prop.adpList;
        *adpList = g_list_prepend(*adpList, (gpointer) adpProp);
-       errCode = neardal_adp_prv_init(neardalMgr, adpProp);
+       errCode = neardal_adp_prv_init(adpProp);
 
        NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
                      g_list_length(*adpList));
 
        /* Invoke client cb 'adapter added' */
-       if (neardalMgr->cb_adp_added != NULL)
-                       (neardalMgr->cb_adp_added)((char *) adapterName,
-                                              neardalMgr->cb_adp_added_ud);
+       if (neardalMgr.cb_adp_added != NULL)
+                       (neardalMgr.cb_adp_added)((char *) adapterName,
+                                              neardalMgr.cb_adp_added_ud);
 
        /* Notify 'Target Found' */
        len = 0;
        while (len < g_list_length(adpProp->tgtList)) {
                tgtProp = g_list_nth_data(adpProp->tgtList, len++);
-               neardal_tgt_notify_target_found(neardalMgr, tgtProp);
+               neardal_tgt_notify_target_found(tgtProp);
                len++;
        }
        return errCode;
@@ -490,13 +478,12 @@ errorCode_t neardal_adp_add(neardal_t neardalMgr, gchar *adapterName)
  * neardal_adp_remove: remove one NFC adapter, unref DBus Proxy connection,
  * unregister adapter signal
  *****************************************************************************/
-errorCode_t neardal_adp_remove(neardal_t neardalMgr, AdpProp *adpProp)
+errorCode_t neardal_adp_remove(AdpProp *adpProp)
 {
        TgtProp         *tgtProp;
        GList           *node = NULL;
        GList           **adpList;
 
-       g_assert(neardalMgr != NULL);
        g_assert(adpProp != NULL);
 
        NEARDAL_TRACEF("Removing adapter:%s\n", adpProp->name);
@@ -508,7 +495,7 @@ errorCode_t neardal_adp_remove(neardal_t neardalMgr, AdpProp *adpProp)
                neardal_tgt_remove(tgtProp);
        }
 
-       adpList = &neardalMgr->prop.adpList;
+       adpList = &neardalMgr.prop.adpList;
        (*adpList) = g_list_remove((*adpList), (gconstpointer) adpProp);
        neardal_adp_prv_free(&adpProp);
 
index 6bc8845..4b55e72 100644 (file)
@@ -59,13 +59,13 @@ errorCode_t neardal_adp_prv_get_target(AdpProp *adpProp, gchar *tgtName,
  * neardal_adp_add: add new NEARDAL adapter, initialize DBus Proxy
  * connection, register adapter signal
  *****************************************************************************/
-errorCode_t neardal_adp_add(neardal_t neardalMgr, gchar *adapterName);
+errorCode_t neardal_adp_add(gchar *adapterName);
 
 /******************************************************************************
  * neardal_adp_remove: remove NEARDAL adapter, unref DBus Proxy
  * connection, unregister adapter signal
  *****************************************************************************/
-errorCode_t neardal_adp_remove(neardal_t neardalMgr, AdpProp *adpProp);
+errorCode_t neardal_adp_remove(AdpProp *adpProp);
 
 /******************************************************************************
  * neardal_adp_publish: Creates and publish NDEF record to be written to
index c010fc5..f0c214d 100644 (file)
@@ -41,14 +41,12 @@ static void neardal_mgr_prv_cb_property_changed( orgNeardMgr *proxy,
                                                 GVariant *arg_unnamed_arg1,
                                                 void        *user_data)
 {
-       neardal_t       neardalMgr      = user_data;
-
        NEARDAL_TRACEIN();
 
-       g_assert(neardalMgr != NULL);
        g_assert(arg_unnamed_arg0 != NULL);
        (void) proxy; /* remove warning */
        (void) arg_unnamed_arg1; /* remove warning */
+       (void) user_data; /* remove warning */
 
        NEARDAL_TRACEF("arg_unnamed_arg0='%s'\n", arg_unnamed_arg0);
        NEARDAL_TRACEF("arg_unnamed_arg1=%s\n",
@@ -64,20 +62,19 @@ static void neardal_mgr_prv_cb_adapter_added(orgNeardMgr *proxy,
                                             const gchar *arg_unnamed_arg0,
                                             void        *user_data)
 {
-       neardal_t       neardalMgr      = user_data;
        errorCode_t     errCode = NEARDAL_SUCCESS;
 
        NEARDAL_TRACEIN();
-       g_assert(neardalMgr != NULL);
        g_assert(arg_unnamed_arg0 != NULL);
        (void) proxy; /* remove warning */
+       (void) user_data; /* remove warning */
 
-       errCode = neardal_adp_add(neardalMgr, (char *) arg_unnamed_arg0);
+       errCode = neardal_adp_add((char *) arg_unnamed_arg0);
        if (errCode != NEARDAL_SUCCESS)
                return;
 
        NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
-                     g_list_length(neardalMgr->prop.adpList));
+                     g_list_length(neardalMgr.prop.adpList));
 }
 
 /******************************************************************************
@@ -88,15 +85,14 @@ static void neardal_mgr_prv_cb_adapter_removed(orgNeardMgr *proxy,
                                               const gchar *arg_unnamed_arg0,
                                               void *user_data)
 {
-       neardal_t       neardalMgr      = user_data;
        GList   *node   = NULL;
 
        NEARDAL_TRACEIN();
-       g_assert(neardalMgr != NULL);
        g_assert(arg_unnamed_arg0 != NULL);
        (void) proxy; /* remove warning */
+       (void) user_data; /* remove warning */
 
-       node = g_list_first(neardalMgr->prop.adpList);
+       node = g_list_first(neardalMgr.prop.adpList);
        if (node == NULL) {
                NEARDAL_TRACE_ERR("NFC adapter not found! (%s)\n",
                                  arg_unnamed_arg0);
@@ -104,34 +100,32 @@ static void neardal_mgr_prv_cb_adapter_removed(orgNeardMgr *proxy,
        }
 
        /* Invoke client cb 'adapter removed' */
-       if (neardalMgr->cb_adp_removed != NULL)
-               (neardalMgr->cb_adp_removed)((char *) arg_unnamed_arg0,
-                                        neardalMgr->cb_adp_removed_ud);
+       if (neardalMgr.cb_adp_removed != NULL)
+               (neardalMgr.cb_adp_removed)((char *) arg_unnamed_arg0,
+                                        neardalMgr.cb_adp_removed_ud);
 
-       neardal_adp_remove(neardalMgr, ((AdpProp *)node->data));
+       neardal_adp_remove(((AdpProp *)node->data));
        
        NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
-                     g_list_length(neardalMgr->prop.adpList));
+                     g_list_length(neardalMgr.prop.adpList));
 }
 
 /******************************************************************************
  * neardal_mgr_prv_get_all_adapters: Check if neard has an adapter
  *****************************************************************************/
-static errorCode_t neardal_mgr_prv_get_all_adapters(neardal_t neardalMgr,
-                                                        gchar ***adpArray,
-                                                        gsize  *len)
+static errorCode_t neardal_mgr_prv_get_all_adapters(gchar ***adpArray,
+                                                   gsize *len)
 {
        errorCode_t     errCode                 = NEARDAL_ERROR_NO_ADAPTER;
        GVariant        *tmp            = NULL;
        GVariant        *tmpOut         = NULL;
 
-       g_assert(neardalMgr != NULL);
        g_assert(adpArray != NULL);
 
        /* Invoking method 'GetProperties' on Neard Manager */
-       if (org_neard_mgr__call_get_properties_sync(neardalMgr->proxy, &tmp,
+       if (org_neard_mgr__call_get_properties_sync(neardalMgr.proxy, &tmp,
                                                    NULL,
-                                            &neardalMgr->gerror)) {
+                                            &neardalMgr.gerror)) {
                NEARDAL_TRACE_LOG("Reading:\n%s\n", g_variant_print(tmp, TRUE));
                NEARDAL_TRACEF("Parsing neard adapters...\n");
                
@@ -144,9 +138,9 @@ static errorCode_t neardal_mgr_prv_get_all_adapters(neardal_t neardalMgr,
                        errCode = NEARDAL_ERROR_NO_ADAPTER;
        } else {
                errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
-               NEARDAL_TRACE_ERR("%d:%s\n", neardalMgr->gerror->code,
-                                neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
+               NEARDAL_TRACE_ERR("%d:%s\n", neardalMgr.gerror->code,
+                                neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
        }
 
        return errCode;
@@ -156,18 +150,16 @@ static errorCode_t neardal_mgr_prv_get_all_adapters(neardal_t neardalMgr,
 /******************************************************************************
  * neardal_mgr_prv_get_adapter: Get NFC Adapter from name
  *****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalMgr, gchar *adpName,
-                                       AdpProp **adpProp)
+errorCode_t neardal_mgr_prv_get_adapter(gchar *adpName, AdpProp **adpProp)
 {
        errorCode_t     errCode = NEARDAL_ERROR_NO_ADAPTER;
        guint           len     = 0;
        AdpProp         *adapter;
        GList           *tmpList;
 
-       g_assert(neardalMgr != NULL);
        g_assert(adpProp != NULL);
 
-       tmpList = neardalMgr->prop.adpList;
+       tmpList = neardalMgr.prop.adpList;
        while (len < g_list_length(tmpList)) {
                adapter = g_list_nth_data(tmpList, len);
                if (adapter != NULL) {
@@ -187,19 +179,17 @@ errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalMgr, gchar *adpName,
 /******************************************************************************
  * neardal_mgr_prv_get_adapter_from_proxy: Get NFC Adapter from proxy
  *****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalMgr,
-                                                       orgNeardAdp *adpProxy,
-                                                       AdpProp **adpProp)
+errorCode_t neardal_mgr_prv_get_adapter_from_proxy(orgNeardAdp *adpProxy,
+                                                  AdpProp **adpProp)
 {
        errorCode_t     errCode = NEARDAL_ERROR_NO_ADAPTER;
        guint           len = 0;
        AdpProp         *adapter;
        GList           *tmpList;
 
-       g_assert(neardalMgr != NULL);
        g_assert(adpProp != NULL);
 
-       tmpList = neardalMgr->prop.adpList;
+       tmpList = neardalMgr.prop.adpList;
        while (len < g_list_length(tmpList)) {
                adapter = g_list_nth_data(tmpList, len);
                if (adapter != NULL) {
@@ -279,7 +269,7 @@ errorCode_t neardal_mgr_prv_get_record(TgtProp *tgtProp, gchar *rcdName,
  * Create a DBus proxy for the first one NFC adapter if present
  * Register Neard Manager signals ('PropertyChanged')
  *****************************************************************************/
-errorCode_t neardal_mgr_create(neardal_t neardalMgr)
+errorCode_t neardal_mgr_create(void)
 {
        errorCode_t     errCode;
        gchar           **adpArray = NULL;
@@ -288,68 +278,67 @@ errorCode_t neardal_mgr_create(neardal_t neardalMgr)
        guint           len;
 
        NEARDAL_TRACEIN();
-       if (neardalMgr->proxy != NULL) {
-               g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+       if (neardalMgr.proxy != NULL) {
+               g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                                G_CALLBACK(neardal_mgr_prv_cb_property_changed),
                                                        NULL);
-               g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+               g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                                G_CALLBACK(neardal_mgr_prv_cb_adapter_added),
                                                        NULL);
-               g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+               g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                                G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
                                                        NULL);
-               g_object_unref(neardalMgr->proxy);
-               neardalMgr->proxy = NULL;
+               g_object_unref(neardalMgr.proxy);
+               neardalMgr.proxy = NULL;
        }
        
-       neardalMgr->proxy = org_neard_mgr__proxy_new_sync(neardalMgr->conn,
+       neardalMgr.proxy = org_neard_mgr__proxy_new_sync(neardalMgr.conn,
                                        G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
                                                        NEARD_DBUS_SERVICE,
                                                        NEARD_MGR_PATH,
                                                        NULL, /* GCancellable */
-                                                       &neardalMgr->gerror);
+                                                       &neardalMgr.gerror);
 
-       if (neardalMgr->gerror != NULL) {
+       if (neardalMgr.gerror != NULL) {
                NEARDAL_TRACE_ERR(
                        "Unable to create Neard Manager Proxy (%d:%s)\n",
-                                neardalMgr->gerror->code,
-                               neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
+                                neardalMgr.gerror->code,
+                               neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
                return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
        }
 
        /* Get and store NFC adapters (is present) */
-       errCode = neardal_mgr_prv_get_all_adapters(neardalMgr, &adpArray,
-                                                  &adpArrayLen);
+       errCode = neardal_mgr_prv_get_all_adapters(&adpArray, &adpArrayLen);
        if (adpArray != NULL && adpArrayLen > 0) {
                len = 0;
                while (len < adpArrayLen && errCode == NEARDAL_SUCCESS) {
                        adpName =  adpArray[len++];
-                       errCode = neardal_adp_add(neardalMgr, adpName);
+                       errCode = neardal_adp_add(adpName);
                }
                g_strfreev(adpArray);
        }
 
        /* Register for manager signals 'PropertyChanged(String,Variant)' */
        NEARDAL_TRACEF("Register Neard-Manager Signal 'PropertyChanged'\n");
-       g_signal_connect(neardalMgr->proxy,
+       g_signal_connect(neardalMgr.proxy,
                         NEARD_MGR_SIG_PROPCHANGED,
                         G_CALLBACK (neardal_mgr_prv_cb_property_changed),
-                        neardalMgr);
+                        NULL);
 
        /* Register for manager signals 'AdapterAdded(ObjectPath)' */
        NEARDAL_TRACEF("Register Neard-Manager Signal 'AdapterAdded'\n");
-       g_signal_connect(neardalMgr->proxy,
+       g_signal_connect(neardalMgr.proxy,
                         NEARD_MGR_SIG_ADP_ADDED,
                         G_CALLBACK (neardal_mgr_prv_cb_adapter_added),
-                        neardalMgr);
+                        NULL);
 
        /* Register for manager signals 'AdapterRemoved(ObjectPath)' */
        NEARDAL_TRACEF("Register Neard-Manager Signal 'AdapterRemoved'\n");
-       g_signal_connect(neardalMgr->proxy,
+       g_signal_connect(neardalMgr.proxy,
                         NEARD_MGR_SIG_ADP_RM,
                         G_CALLBACK (neardal_mgr_prv_cb_adapter_removed),
-                        neardalMgr);
+                        NULL);
 
        return errCode;
 }
@@ -357,34 +346,32 @@ errorCode_t neardal_mgr_create(neardal_t neardalMgr)
 /******************************************************************************
  * neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
  *****************************************************************************/
-void neardal_mgr_destroy(neardal_t *neardalMgr)
+void neardal_mgr_destroy(void)
 {
        GList   *node;
        GList   **tmpList;
 
        NEARDAL_TRACEIN();
        /* Remove all adapters */
-       tmpList = &(*neardalMgr)->prop.adpList;
+       tmpList = &neardalMgr.prop.adpList;
        while (g_list_length((*tmpList))) {
                node = g_list_first((*tmpList));
-               neardal_adp_remove((*neardalMgr), ((AdpProp *)node->data));
+               neardal_adp_remove(((AdpProp *)node->data));
        }
-       (*neardalMgr)->prop.adpList = (*tmpList);
+       neardalMgr.prop.adpList = (*tmpList);
 
-       if ((*neardalMgr)->proxy == NULL)
+       if (neardalMgr.proxy == NULL)
                return;
 
-       g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
+       g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                        G_CALLBACK(neardal_mgr_prv_cb_property_changed),
                                                NULL);
-       g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
+       g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                        G_CALLBACK(neardal_mgr_prv_cb_adapter_added),
                                                NULL);
-       g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
+       g_signal_handlers_disconnect_by_func(neardalMgr.proxy,
                        G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
                                                NULL);
-       g_object_unref((*neardalMgr)->proxy);
-       (*neardalMgr)->proxy = NULL;
-       g_free((*neardalMgr));
-       (*neardalMgr) = NULL;
+       g_object_unref(neardalMgr.proxy);
+       neardalMgr.proxy = NULL;
 }
index 5c1fdcb..4ef6b9c 100644 (file)
@@ -43,15 +43,12 @@ typedef struct {
 /******************************************************************************
  * neardal_mgr_prv_get_adapter: Get NEARDAL Adapter from name
  *****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalMgr,
-                                            gchar *adpName,
-                                            AdpProp **adpProp);
+errorCode_t neardal_mgr_prv_get_adapter(gchar *adpName, AdpProp **adpProp);
 
 /******************************************************************************
  * neardal_mgr_prv_get_adapter_from_proxy: Get NEARDAL Adapter from proxy
  *****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalMgr,
-                                                       orgNeardAdp *adpProxy,
+errorCode_t neardal_mgr_prv_get_adapter_from_proxy(orgNeardAdp *adpProxy,
                                                        AdpProp **adpProp);
 
 /******************************************************************************
@@ -71,12 +68,12 @@ errorCode_t neardal_mgr_prv_get_record(TgtProp *tgtProp, gchar *rcdName,
  * Create a DBus proxy for the first one NEARDAL adapter if present
  * Register Neard Manager signals ('PropertyChanged')
  *****************************************************************************/
-errorCode_t neardal_mgr_create(neardal_t neardalMgr);
+errorCode_t neardal_mgr_create(void);
 
 /******************************************************************************
  * neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
  *****************************************************************************/
-void neardal_mgr_destroy(neardal_t *neardalMgr);
+void neardal_mgr_destroy(void);
 
 #ifdef __cplusplus
 }
index 9311a15..41779ec 100644 (file)
@@ -75,6 +75,16 @@ typedef struct neardalCtx {
        GError          *gerror;        /* Lastest GError if available */
 } neardalCtx;
 
+extern neardalCtx neardalMgr;
+
+/*! \fn neardal_t neardal_prv_construct(errorCode_t *ec)
+*  \brief create NEARDAL object instance, Neard Dbus connection,
+* register Neard's events
+*  \param ec : optional, pointer to store error code
+*  \return the NEARDAL context
+*/
+void neardal_prv_construct(errorCode_t *ec);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
index 1f53dfe..6ff4406 100644 (file)
@@ -97,8 +97,7 @@ static errorCode_t neardal_rcd_prv_read_properties(RcdProp *rcd)
  * Create a DBus proxy for the first one NFC record if present
  * Register Neard Manager signals ('PropertyChanged')
  *****************************************************************************/
-static errorCode_t neardal_rcd_prv_init(neardal_t neardalMgr,
-                                           RcdProp *rcd)
+static errorCode_t neardal_rcd_prv_init(RcdProp *rcd)
 {
        NEARDAL_TRACEIN();
        g_assert(rcd != NULL);
@@ -107,18 +106,18 @@ static errorCode_t neardal_rcd_prv_init(neardal_t neardalMgr,
                g_object_unref(rcd->proxy);
        rcd->proxy = NULL;
 
-       rcd->proxy = org_neard_rcd__proxy_new_sync(neardalMgr->conn,
+       rcd->proxy = org_neard_rcd__proxy_new_sync(neardalMgr.conn,
                                        G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
                                                        NEARD_DBUS_SERVICE,
                                                        rcd->name,
                                                        NULL, /* GCancellable */
-                                                       &neardalMgr->gerror);
-       if (neardalMgr->gerror != NULL) {
+                                                       &neardalMgr.gerror);
+       if (neardalMgr.gerror != NULL) {
                NEARDAL_TRACE_ERR(
                        "Unable to create Neard Record Proxy (%d:%s)\n",
-                                neardalMgr->gerror->code,
-                               neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
+                                neardalMgr.gerror->code,
+                               neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
                return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
        }
        
@@ -196,10 +195,9 @@ errorCode_t neardal_rcd_prv_format(GVariantBuilder *builder, RcdProp *rcd)
 /******************************************************************************
  * neardal_get_records: get an array of target records
  *****************************************************************************/
-errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
-                                char ***array, int *len)
+errorCode_t neardal_get_records(char *tgtName, char ***array, int *len)
 {
-       errorCode_t     errCode         = NEARDAL_ERROR_NO_RECORD;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
        TgtProp         *tgtProp        = NULL;
        int             rcdLen          = 0;
@@ -208,24 +206,26 @@ errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
        RcdProp         *rcd            = NULL;
 
 
-       if (neardalMgr == NULL || tgtName == NULL || array == NULL)
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || tgtName == NULL || array == NULL)
                return NEARDAL_ERROR_INVALID_PARAMETER;
 
-       errCode = neardal_mgr_prv_get_adapter(neardalMgr, tgtName,
-                                                  &adpProp);
-       if (errCode != NEARDAL_SUCCESS)
+       err = neardal_mgr_prv_get_adapter(tgtName, &adpProp);
+       if (err != NEARDAL_SUCCESS)
                goto exit;
 
-       errCode = neardal_adp_prv_get_target(adpProp, tgtName, &tgtProp);
-       if (errCode != NEARDAL_SUCCESS)
+       err = neardal_adp_prv_get_target(adpProp, tgtName, &tgtProp);
+       if (err != NEARDAL_SUCCESS)
                goto exit;
 
-       errCode         = NEARDAL_ERROR_NO_RECORD;
+       err             = NEARDAL_ERROR_NO_RECORD;
        rcdLen = g_list_length(tgtProp->rcdList);
        if (rcdLen <= 0)
                goto exit;
 
-       errCode = NEARDAL_ERROR_NO_MEMORY;
+       err = NEARDAL_ERROR_NO_MEMORY;
        rcds = g_try_malloc0((rcdLen + 1) * sizeof(char *));
        if (rcds == NULL)
                goto exit;
@@ -235,28 +235,26 @@ errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
                if (rcd != NULL)
                        rcds[ct++] = g_strdup(rcd->name);
        }
-       errCode = NEARDAL_SUCCESS;
+       err = NEARDAL_SUCCESS;
 
 exit:
        if (len != NULL)
                *len = rcdLen;
        *array  = rcds;
 
-       return errCode;
+       return err;
 }
 
 /******************************************************************************
  * neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
  * register record signal
  *****************************************************************************/
-errorCode_t neardal_rcd_add(neardal_t neardalMgr, void *parent,
-                           char *rcdName)
+errorCode_t neardal_rcd_add(char *rcdName, void *parent)
 {
        errorCode_t     errCode         = NEARDAL_ERROR_NO_MEMORY;
        RcdProp         *rcd    = NULL;
        TgtProp         *tgtProp = parent;
        
-       g_assert(neardalMgr != NULL);
        g_assert(rcdName != NULL);
        g_assert(parent != NULL);
 
@@ -272,7 +270,7 @@ errorCode_t neardal_rcd_add(neardal_t neardalMgr, void *parent,
        rcd->parent = tgtProp;
        
        tgtProp->rcdList = g_list_prepend(tgtProp->rcdList, (gpointer) rcd);
-       errCode = neardal_rcd_prv_init(neardalMgr, rcd);
+       errCode = neardal_rcd_prv_init(rcd);
        if (errCode != NEARDAL_SUCCESS)
                goto exit;
 
index cc2fccd..a1634ab 100644 (file)
@@ -52,8 +52,7 @@ typedef struct {
  * neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
  * register record signal
  *****************************************************************************/
-errorCode_t neardal_rcd_add(neardal_t neardalMgr, void *parent,
-                           char *rcdName);
+errorCode_t neardal_rcd_add(char *rcdName, void *parent);
 
 /******************************************************************************
  * neardal_rcd_remove: remove NFC record, unref DBus Proxy connection,
index f04e7d4..0905046 100644 (file)
@@ -100,16 +100,11 @@ static errorCode_t neardal_tgt_prv_read_properties(TgtProp *tgtProp)
                } else {
                        guint len = 0;
                        char *rcdName;
-                       AdpProp *adpProp;
-                       neardal_t neardalMgr;
 
-                       adpProp = tgtProp->parent;
-                       neardalMgr = adpProp->parent;
-                       while (len < tgtProp->rcdLen && 
+                       while (len < tgtProp->rcdLen &&
                                errCode == NEARDAL_SUCCESS) {
                                rcdName = rcdArray[len++];
-                               errCode = neardal_rcd_add(neardalMgr, tgtProp,
-                                                       rcdName);
+                               errCode = neardal_rcd_add(rcdName, tgtProp);
                        }
                }
        }
@@ -141,8 +136,7 @@ exit:
  * Create a DBus proxy for the first one NFC target if present
  * Register Neard Manager signals ('PropertyChanged')
  *****************************************************************************/
-static errorCode_t neardal_tgt_prv_init(neardal_t neardalMgr,
-                                           TgtProp *tgtProp)
+static errorCode_t neardal_tgt_prv_init(TgtProp *tgtProp)
 {
        errorCode_t     errCode = NEARDAL_SUCCESS;
 
@@ -158,18 +152,18 @@ static errorCode_t neardal_tgt_prv_init(neardal_t neardalMgr,
        }
        tgtProp->proxy = NULL;
 
-       tgtProp->proxy = org_neard_tgt__proxy_new_sync(neardalMgr->conn,
+       tgtProp->proxy = org_neard_tgt__proxy_new_sync(neardalMgr.conn,
                                        G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
                                                        NEARD_DBUS_SERVICE,
                                                        tgtProp->name,
                                                        NULL, /* GCancellable */
-                                                       &neardalMgr->gerror);
-       if (neardalMgr->gerror != NULL) {
+                                                       &neardalMgr.gerror);
+       if (neardalMgr.gerror != NULL) {
                NEARDAL_TRACE_ERR(
                        "Unable to create Neard Target Proxy (%d:%s)\n",
-                                 neardalMgr->gerror->code,
-                                 neardalMgr->gerror->message);
-               neardal_tools_prv_free_gerror(neardalMgr);
+                                 neardalMgr.gerror->code,
+                                 neardalMgr.gerror->message);
+               neardal_tools_prv_free_gerror(&neardalMgr);
                return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
        }
 
@@ -210,28 +204,27 @@ static void neardal_tgt_prv_free(TgtProp **tgtProp)
  * neardal_tgt_notify_target_found: Invoke client callback for 'record found'
  * if present, and 'target found' (if not already nofied)
  *****************************************************************************/
-void neardal_tgt_notify_target_found(neardal_t neardalMgr, TgtProp *tgtProp)
+void neardal_tgt_notify_target_found(TgtProp *tgtProp)
 {
        RcdProp *rcdProp;
        gsize   len;
        
-       g_assert(neardalMgr != NULL);
        g_assert(tgtProp != NULL);
        
                
-       if (tgtProp->notified == FALSE && neardalMgr->cb_tgt_found != NULL) {
-               (neardalMgr->cb_tgt_found)(tgtProp->name,
-                                          neardalMgr->cb_tgt_found_ud);
+       if (tgtProp->notified == FALSE && neardalMgr.cb_tgt_found != NULL) {
+               (neardalMgr.cb_tgt_found)(tgtProp->name,
+                                          neardalMgr.cb_tgt_found_ud);
                tgtProp->notified = TRUE;
        }
 
        len = 0;
-       if (neardalMgr->cb_rcd_found != NULL)
+       if (neardalMgr.cb_rcd_found != NULL)
                while (len < g_list_length(tgtProp->rcdList)) {
                        rcdProp = g_list_nth_data(tgtProp->rcdList, len++);
                        if (rcdProp->notified == FALSE) {
-                               (neardalMgr->cb_rcd_found)(rcdProp->name,
-                                                       neardalMgr->cb_rcd_found_ud);
+                               (neardalMgr.cb_rcd_found)(rcdProp->name,
+                                                       neardalMgr.cb_rcd_found_ud);
                                rcdProp->notified = TRUE;
                        }
                }
@@ -239,10 +232,9 @@ void neardal_tgt_notify_target_found(neardal_t neardalMgr, TgtProp *tgtProp)
 /******************************************************************************
  * neardal_get_targets: get an array of NFC targets present
  *****************************************************************************/
-errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
-                                char ***array, int *len)
+errorCode_t neardal_get_targets(char *adpName, char ***array, int *len)
 {
-       errorCode_t     errCode         = NEARDAL_ERROR_NO_TARGET;
+       errorCode_t     err             = NEARDAL_SUCCESS;
        AdpProp         *adpProp        = NULL;
        int             tgtNb           = 0;
        int             ct              = 0;    /* counter */
@@ -250,19 +242,21 @@ errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
        TgtProp         *target         = NULL;
 
 
-       if (neardalMgr == NULL || adpName == NULL || array == NULL)
+       if (neardalMgr.proxy == NULL)
+               neardal_prv_construct(&err);
+
+       if (err != NEARDAL_SUCCESS || adpName == NULL || array == NULL)
                return NEARDAL_ERROR_INVALID_PARAMETER;
 
-       errCode = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
-                                                  &adpProp);
-       if (errCode != NEARDAL_SUCCESS)
-               return errCode;
+       err = neardal_mgr_prv_get_adapter(adpName, &adpProp);
+       if (err != NEARDAL_SUCCESS)
+               return err;
 
        tgtNb = g_list_length(adpProp->tgtList);
        if (tgtNb <= 0)
                return NEARDAL_ERROR_NO_TARGET;
 
-       errCode = NEARDAL_ERROR_NO_MEMORY;
+       err = NEARDAL_ERROR_NO_MEMORY;
        tgts = g_try_malloc0((tgtNb + 1) * sizeof(char *));
 
        if (tgts == NULL)
@@ -273,27 +267,25 @@ errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
                if (target != NULL)
                        tgts[ct++] = g_strdup(target->name);
        }
-       errCode = NEARDAL_SUCCESS;
+       err = NEARDAL_SUCCESS;
 
        if (len != NULL)
                *len = tgtNb;
        *array  = tgts;
 
-       return errCode;
+       return err;
 }
 
 /******************************************************************************
  * neardal_tgt_add: add new NFC target, initialize DBus Proxy connection,
  * register target signal
  *****************************************************************************/
-errorCode_t neardal_tgt_add(neardal_t neardalMgr, void * parent,
-                           gchar *tgtName)
+errorCode_t neardal_tgt_add(gchar *tgtName, void * parent)
 {
        errorCode_t     errCode         = NEARDAL_ERROR_NO_MEMORY;
        TgtProp         *tgtProp        = NULL;
        AdpProp         *adpProp        = parent;
 
-       g_assert(neardalMgr != NULL);
        g_assert(tgtName != NULL);
 
        NEARDAL_TRACEF("Adding target:%s\n", tgtName);
@@ -305,7 +297,7 @@ errorCode_t neardal_tgt_add(neardal_t neardalMgr, void * parent,
        tgtProp->parent = adpProp;
 
        adpProp->tgtList = g_list_prepend(adpProp->tgtList, tgtProp);
-       errCode = neardal_tgt_prv_init(neardalMgr, tgtProp);
+       errCode = neardal_tgt_prv_init(tgtProp);
 
        NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
                      g_list_length(adpProp->tgtList));
index e783e14..acef3a6 100644 (file)
@@ -53,14 +53,13 @@ typedef struct {
  * neardal_tgt_notify_target_found: Invoke client callback for 'record found'
  * if present, and 'target found' (if not already nofied)
  *****************************************************************************/
-void neardal_tgt_notify_target_found(neardal_t neardalMgr, TgtProp *tgtProp);
+void neardal_tgt_notify_target_found(TgtProp *tgtProp);
 
 /******************************************************************************
  * neardal_tgt_add: add new NEARDAL target, initialize DBus Proxy connection,
  * register target signal
  *****************************************************************************/
-errorCode_t neardal_tgt_add(neardal_t neardalMgr, void *parent,
-                           gchar *tgtName);
+errorCode_t neardal_tgt_add(gchar *tgtName, void * parent);
 
 /******************************************************************************
  * neardal_tgt_remove: remove NEARDAL target, unref DBus Proxy connection,
index 93abc87..d143523 100644 (file)
@@ -257,17 +257,17 @@ static void ncl_cmd_prv_dump_record(neardal_record record)
 }
 
 /******************************************************************************
- * neardal_construct : BEGIN
- * Instanciate NFC object, create Neard Dbus connection, register Neard's event
+ * neardal callbacks : BEGIN
  *****************************************************************************/
 static void ncl_cmd_cb_adapter_added(const char *adpName, void *user_data)
 {
-       neardal_t       neardalMgr = user_data;
        errorCode_t     ec;
        neardal_adapter adapter;
 
+       (void) user_data; /* Remove warning */
+       
        NCL_CMD_PRINTF("NFC Adapter added '%s'\n", adpName);
-       ec = neardal_get_adapter_properties(neardalMgr, adpName, &adapter);
+       ec = neardal_get_adapter_properties(adpName, &adapter);
        if (ec == NEARDAL_SUCCESS)
                ncl_cmd_prv_dump_adapter(adapter);
        else
@@ -280,20 +280,18 @@ static void ncl_cmd_cb_adapter_added(const char *adpName, void *user_data)
 
 static void ncl_cmd_cb_adapter_removed(const char *adpName, void * user_data)
 {
-       neardal_t       neardalMgr = user_data;
-
-       (void) neardalMgr;
-
+       (void) user_data; /* remove warning */
+       
        NCL_CMD_PRINTF("NFC Adapter removed '%s'\n", adpName);
 }
 
 static void ncl_cmd_cb_adapter_prop_changed(char *adpName, char *propName,
                                            void *value, void *user_data)
 {
-       neardal_t       neardalMgr = user_data;
        int             polling;
 
-       (void) neardalMgr;
+       (void) user_data; /* remove warning */
+       
        if (!strcmp(propName, "Polling")) {
                polling = (int)value;
                NCL_CMD_PRINTF("Polling=%d\n", polling);
@@ -306,13 +304,14 @@ static void ncl_cmd_cb_adapter_prop_changed(char *adpName, char *propName,
 
 static void ncl_cmd_cb_target_found(const char *tgtName, void *user_data)
 {
-       neardal_t       neardalMgr = user_data;
        neardal_target  target;
        errorCode_t     ec;
 
+       (void) user_data; /* remove warning */
+
        NCL_CMD_PRINTF("NFC Target found (%s)\n", tgtName);
 
-       ec = neardal_get_target_properties(neardalMgr, tgtName, &target);
+       ec = neardal_get_target_properties(tgtName, &target);
        if (ec == NEARDAL_SUCCESS)
                ncl_cmd_prv_dump_target(target);
        else
@@ -324,21 +323,19 @@ static void ncl_cmd_cb_target_found(const char *tgtName, void *user_data)
 
 static void ncl_cmd_cb_target_lost(const char *tgtName, void *user_data)
 {
-       neardal_t       neardalMgr = user_data;
-
+       (void) user_data; /* remove warning */
        NCL_CMD_PRINTF("NFC Target lost (%s)\n", tgtName);
-       (void) neardalMgr;
-
 }
 
 static void ncl_cmd_cb_record_found(const char *rcdName, void *user_data)
 {
-       neardal_t       neardalMgr = user_data;
        errorCode_t     ec;
        neardal_record  record;
 
+       (void) user_data; /* remove warning */
+       
        NCL_CMD_PRINTF("Target Record found (%s)\n", rcdName);
-       ec = neardal_get_record_properties(neardalMgr, rcdName, &record);
+       ec = neardal_get_record_properties(rcdName, &record);
        if (ec == NEARDAL_SUCCESS) {
                ncl_cmd_prv_dump_record(record);
 /*             NCL_CMD_PRINTF("(Re)Start Poll\n");
@@ -350,66 +347,24 @@ static void ncl_cmd_cb_record_found(const char *rcdName, void *user_data)
 
        return;
 }
+/******************************************************************************
+ * neardal callbacks : END
+ *****************************************************************************/
 
-static NCLError ncl_cmd_neardal_construct(int argc, char *argv[])
+static void ncl_cmd_install_callback(void)
 {
-       errorCode_t     ec;
-       NCLError        nclErr;
-
-       (void) argc; /* remove warning */
-       (void) argv; /* remove warning */
-
-       /* Construct NEARDAL object */
-       sNclCmdCtx.neardalMgr = neardal_construct(&ec);
-       if (sNclCmdCtx.neardalMgr != NULL)
-               NCL_CMD_PRINTF("NFC object constructed");
-       else
-               NCL_CMD_PRINTF("NFC object not constructed");
-       if (ec != NEARDAL_SUCCESS)
-               NCL_CMD_PRINT(" with error:%d='%s'.\n", ec,
-                              neardal_error_get_text(ec));
-       NCL_CMD_PRINT("\n");
-
-       if (sNclCmdCtx.neardalMgr == NULL)
-               goto exit;
-
-       nclErr = NCLERR_NOERROR;
-       neardal_set_cb_adapter_added(sNclCmdCtx.neardalMgr,
-                                     ncl_cmd_cb_adapter_added,
-                                     sNclCmdCtx.neardalMgr);
-       neardal_set_cb_adapter_removed(sNclCmdCtx.neardalMgr,
-                                       ncl_cmd_cb_adapter_removed,
-                                       sNclCmdCtx.neardalMgr);
-       neardal_set_cb_adapter_property_changed(sNclCmdCtx.neardalMgr,
-                                       ncl_cmd_cb_adapter_prop_changed,
-                                               sNclCmdCtx.neardalMgr);
+       neardal_set_cb_adapter_added(ncl_cmd_cb_adapter_added, NULL);
+       neardal_set_cb_adapter_removed(ncl_cmd_cb_adapter_removed, NULL);
+       neardal_set_cb_adapter_property_changed(ncl_cmd_cb_adapter_prop_changed,
+                                               NULL);
        NCL_CMD_PRINTF("NFC adapter callback registered\n");
-       neardal_set_cb_target_found(sNclCmdCtx.neardalMgr,
-                                    ncl_cmd_cb_target_found,
-                                    sNclCmdCtx.neardalMgr);
-       neardal_set_cb_target_lost(sNclCmdCtx.neardalMgr,
-                                   ncl_cmd_cb_target_lost,
-                                   sNclCmdCtx.neardalMgr);
+       neardal_set_cb_target_found(ncl_cmd_cb_target_found, NULL);
+       neardal_set_cb_target_lost(ncl_cmd_cb_target_lost, NULL);
        NCL_CMD_PRINTF("NFC target registered\n");
-       neardal_set_cb_record_found(sNclCmdCtx.neardalMgr,
-                                    ncl_cmd_cb_record_found,
-                                    sNclCmdCtx.neardalMgr);
+       neardal_set_cb_record_found(ncl_cmd_cb_record_found, NULL);
        NCL_CMD_PRINTF("NFC record callback registered\n");
-
-exit:
-       NCL_CMD_PRINT("\nExit with error code %d:%s\n", ec,
-                     neardal_error_get_text(ec));
-
-       if (ec == NEARDAL_SUCCESS)
-               nclErr =  NCLERR_NOERROR ;
-       else
-               nclErr = NCLERR_LIB_ERROR;
-
-       return nclErr;
+       sNclCmdCtx.cb_initialized = true;
 }
-/******************************************************************************
- * neardal_construct : END
- *****************************************************************************/
 
 /******************************************************************************
  * neardal_get_adapters : BEGIN
@@ -423,16 +378,14 @@ static NCLError ncl_cmd_neardal_get_adapters(int argc, char *argv[])
        int             adpLen;
        int             adpOff;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINT("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       (void) argc; /* Remove warning */
+       (void) argv; /* Remove warning */
+       
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
-       ec = neardal_get_adapters(sNclCmdCtx.neardalMgr, &adpArray,
-                                       &adpLen);
+       ec = neardal_get_adapters(&adpArray, &adpLen);
        if (ec == NEARDAL_SUCCESS) {
                adpOff = 0;
                /* For each adapter */
@@ -464,25 +417,19 @@ static NCLError ncl_cmd_neardal_get_adapters(int argc, char *argv[])
  *****************************************************************************/
 static NCLError ncl_cmd_neardal_get_adapter_properties(int argc, char *argv[])
 {
-       errorCode_t ec;
-       NCLError        nclErr;
+       errorCode_t     ec;
        char            *adapterName    = NULL;
        neardal_adapter adapter;
 
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
        adapterName = argv[1];
-       ec = neardal_get_adapter_properties(sNclCmdCtx.neardalMgr,
-                                            adapterName, &adapter);
+       ec = neardal_get_adapter_properties(adapterName, &adapter);
 
        if (ec == NEARDAL_SUCCESS)
                ncl_cmd_prv_dump_adapter(adapter);
@@ -515,16 +462,11 @@ static NCLError ncl_cmd_neardal_get_targets(int argc, char *argv[])
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
-       ec = neardal_get_targets(sNclCmdCtx.neardalMgr, argv[1],
-                                       &tgtArray, &tgtLen);
+       ec = neardal_get_targets(argv[1], &tgtArray, &tgtLen);
        if (ec == NEARDAL_SUCCESS) {
                tgtOff = 0;
                        /* For each target */
@@ -557,25 +499,18 @@ static NCLError ncl_cmd_neardal_get_targets(int argc, char *argv[])
 static NCLError ncl_cmd_neardal_get_target_properties(int argc, char *argv[])
 {
        errorCode_t     ec;
-       NCLError        nclErr;
        char            *targetName     = NULL;
        neardal_target  target;
 
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
-
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
        targetName = argv[1];
-       ec = neardal_get_target_properties(sNclCmdCtx.neardalMgr, targetName,
-                                           &target);
+       ec = neardal_get_target_properties(targetName, &target);
 
        if (ec == NEARDAL_SUCCESS)
                ncl_cmd_prv_dump_target(target);
@@ -609,16 +544,11 @@ static NCLError ncl_cmd_neardal_get_records(int argc, char *argv[])
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
-       ec = neardal_get_records(sNclCmdCtx.neardalMgr, argv[1],
-                                       &rcdArray, &rcdLen);
+       ec = neardal_get_records(argv[1], &rcdArray, &rcdLen);
        if (ec == NEARDAL_SUCCESS) {
                rcdOff = 0;
                /* For each record */
@@ -650,24 +580,18 @@ static NCLError ncl_cmd_neardal_get_records(int argc, char *argv[])
 static NCLError ncl_cmd_neardal_get_record_properties(int argc, char *argv[])
 {
        errorCode_t ec;
-       NCLError        nclErr;
        char            *recordName     = NULL;
        neardal_record  record;
 
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
        recordName = argv[1];
-       ec = neardal_get_record_properties(sNclCmdCtx.neardalMgr, recordName,
-                                           &record);
+       ec = neardal_get_record_properties(recordName, &record);
        if (ec == NEARDAL_SUCCESS)
                ncl_cmd_prv_dump_record(record);
        else {
@@ -747,15 +671,11 @@ static GOptionEntry options[] = {
        if (nclErr != NCLERR_NOERROR)
                goto exit;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               goto exit;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
-       ec = neardal_publish(sNclCmdCtx.neardalMgr, &rcd);
+       ec = neardal_publish(&rcd);
 
 exit:
        NCL_CMD_PRINT("\nExit with error code %d:%s\n", ec,
@@ -792,22 +712,17 @@ static NCLError ncl_cmd_neardal_start_poll(int argc, char *argv[])
 {
        errorCode_t     ec              = NEARDAL_SUCCESS;
        char            *adpName        = NULL;
-       NCLError        nclErr;
 
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
        /* Start polling if adapter present */
        adpName = argv[1];
-       neardal_start_poll(sNclCmdCtx.neardalMgr, adpName, &ec);
+       neardal_start_poll(adpName, &ec);
        if (ec != NEARDAL_SUCCESS) {
                NCL_CMD_PRINTF("NFC polling activation error:%d='%s'\n",
                                ec, neardal_error_get_text(ec));
@@ -830,22 +745,17 @@ static NCLError ncl_cmd_neardal_start_poll(int argc, char *argv[])
 static NCLError ncl_cmd_neardal_stop_poll(int argc, char *argv[])
 {
        errorCode_t     ec              = NEARDAL_SUCCESS;
-       NCLError        nclErr          = NCLERR_NOERROR;
        char            *adpName        = NULL;
 
        if (argc <= 1)
                return NCLERR_PARSING_PARAMETERS;
 
-       /* Check if NEARDAL object exist */
-       if (sNclCmdCtx.neardalMgr == NULL) {
-               NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
-               nclErr = ncl_cmd_neardal_construct(argc, argv);
-       }
-       if ((nclErr != NCLERR_NOERROR) || (sNclCmdCtx.neardalMgr == NULL))
-               return nclErr;
+       /* Install Neardal Callback*/
+       if (sNclCmdCtx.cb_initialized == false)
+               ncl_cmd_install_callback();
 
        adpName = argv[1];
-       neardal_stop_poll(sNclCmdCtx.neardalMgr, adpName, &ec);
+       neardal_stop_poll(adpName, &ec);
        if (ec != NEARDAL_SUCCESS) {
                NCL_CMD_PRINTF("Stop NFC polling error:%d='%s'.\n", ec,
                               neardal_error_get_text(ec));
@@ -971,9 +881,8 @@ static NCLError ncl_cmd_quit(int argc, char *argv[])
        nclCtxP = ncl_get_ctx();
 
        /* Release NEARDAL object */
-       neardal_destroy(sNclCmdCtx.neardalMgr);
-       sNclCmdCtx.neardalMgr = NULL;
-
+       neardal_destroy();
+       
        /* Quit Main Loop */
        if (nclCtxP)
                g_main_loop_quit(nclCtxP->main_loop);
@@ -1120,7 +1029,5 @@ void ncl_cmd_finalize(void)
                g_string_free(sNclCmdCtx.clBuf, TRUE);
 
        /* Release NFC object */
-       if (sNclCmdCtx.neardalMgr != NULL)
-               neardal_destroy(sNclCmdCtx.neardalMgr);
-
+       neardal_destroy();
 }
index f85150e..76b7f08 100644 (file)
@@ -30,8 +30,8 @@
 
 /* Command Line Interpretor context... */
 typedef struct {
-       /* NEARDAL Object */
-       neardal_t       neardalMgr;
+       /* NEARDAL Callback already initialized? */
+       gboolean        cb_initialized;
 
        /* command line interpretor context */
        GString         *clBuf;         /* Command line buffer */