Simplifying Neardal APIs and source code.
#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;
}
/******************************************************************************
* '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;
}
/******************************************************************************
* '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;
}
/******************************************************************************
* '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;
}
/******************************************************************************
* '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;
}
* '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;
}
/******************************************************************************
/******************************************************************************
* 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)
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;
/******************************************************************************
* 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;
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);
}
}
/******************************************************************************
* 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;
/******************************************************************************
* 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;
/******************************************************************************
* 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;
/******************************************************************************
* 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;
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);
- }
-}
* @{
*/
-/*! \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
* @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
* @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)
*
* 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);
/* @}*/
{
AdpProp *adpProp = user_data;
errorCode_t err;
- neardal_t neardalMgr;
TgtProp *tgtProp;
NEARDAL_TRACEIN();
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));
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
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));
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;
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;
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")) {
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:
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);
while (len < adpProp->tgtNb &&
errCode == NEARDAL_SUCCESS) {
tgtName = tgtArray[len++];
- errCode = neardal_tgt_add(neardalMgr, adpProp,
- tgtName);
+ errCode = neardal_tgt_add(tgtName, adpProp);
}
}
}
* 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;
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;
}
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 ");
/******************************************************************************
* 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;
TgtProp *tgtProp;
gsize len;
- g_assert(neardalMgr != NULL);
NEARDAL_TRACEF("Adding adapter:%s\n", adapterName);
adpProp = g_try_malloc0(sizeof(AdpProp));
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;
* 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);
neardal_tgt_remove(tgtProp);
}
- adpList = &neardalMgr->prop.adpList;
+ adpList = &neardalMgr.prop.adpList;
(*adpList) = g_list_remove((*adpList), (gconstpointer) adpProp);
neardal_adp_prv_free(&adpProp);
* 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
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",
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));
}
/******************************************************************************
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);
}
/* 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");
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;
/******************************************************************************
* 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) {
/******************************************************************************
* 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) {
* 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;
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;
}
/******************************************************************************
* 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;
}
/******************************************************************************
* 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);
/******************************************************************************
* 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
}
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 */
* 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);
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;
}
/******************************************************************************
* 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;
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;
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);
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;
* 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,
} 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);
}
}
}
* 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;
}
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;
}
* 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;
}
}
/******************************************************************************
* 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 */
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)
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);
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));
* 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,
}
/******************************************************************************
- * 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
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);
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
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");
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
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 */
*****************************************************************************/
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);
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 */
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);
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 */
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 {
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,
{
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));
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));
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);
g_string_free(sNclCmdCtx.clBuf, TRUE);
/* Release NFC object */
- if (sNclCmdCtx.neardalMgr != NULL)
- neardal_destroy(sNclCmdCtx.neardalMgr);
-
+ neardal_destroy();
}
/* 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 */