])
if (test "${debug}" = "yes"); then
- CFLAGS="$CFLAGS -g -O0"
+ CFLAGS="$CFLAGS -g -O0 -DNEARDAL_DEBUG"
echo 'NEARDAL will be compiled in debug mode. CFLAGS='${CFLAGS}
else
CFLAGS="$CFLAGS -O2"
<node>
<interface name="org.neard.Tag">
<method name="GetProperties">
- <arg type="a{sv}" direction="out"/>
+ <arg name="properties" type="a{sv}" direction="out"/>
</method>
<method name="SetProperty">
- <arg type="s" direction="in"/>
- <arg type="v" direction="in"/>
+ <arg name="name" type="s" direction="in"/>
+ <arg name="value" type="v" direction="in"/>
</method>
<method name="Write">
- <arg type="a{sv}" direction="in"/>
+ <arg name="attributes" type="a{sv}" direction="in"/>
+ </method>
+ <method name="GetRawNDEF">
+ <arg name="NDEF" type="ay" direction="out"/>
</method>
<signal name="PropertyChanged">
- <arg type="s"/>
- <arg type="v"/>
+ <arg name="name" type="s"/>
+ <arg name="value" type="v"/>
</signal>
</interface>
<node name="record0"/>
case NEARDAL_ERROR_NO_RECORD:
return "No tag record found...";
+ case NEARDAL_ERROR_INVALID_RECORD:
+ return "Tag record has an invalid format...";
+
case NEARDAL_ERROR_POLLING_ALREADY_ACTIVE:
return "Polling already active";
NEARDAL_TRACEIN();
(void) proxy; /* remove warning */
- g_assert(arg_unnamed_arg0 != NULL);
- g_assert(adpProp != NULL);
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
+ NEARDAL_ASSERT(adpProp != NULL);
NEARDAL_TRACEF("Adding tag '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Tag Found' before adding it (otherwise
errorCode_t err;
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
neardal_mgr_prv_get_adapter((char *) arg_unnamed_arg0, &adpProp);
NEARDAL_TRACEIN();
(void) proxy; /* remove warning */
- g_assert(arg_unnamed_arg0 != NULL);
- g_assert(adpProp != NULL);
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
+ NEARDAL_ASSERT(adpProp != NULL);
NEARDAL_TRACEF("Adding device '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Dev Found' before adding it (otherwise
errorCode_t err;
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
neardal_mgr_prv_get_adapter((char *) arg_unnamed_arg0, &adpProp);
(void) proxy; /* remove warning */
(void) user_data; /* remove warning */
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
neardal_mgr_prv_get_adapter_from_proxy(proxy, &adpProp);
if (adpProp == NULL) {
gsize len = 0;
NEARDAL_TRACEIN();
- g_assert(adpProp != NULL);
- g_assert(adpProp->proxy != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(adpProp->proxy != NULL
+ , NEARDAL_ERROR_INVALID_PARAMETER);
org_neard_adp__call_get_properties_sync(adpProp->proxy, &tmp,
NULL, &gerror);
guint len = 0;
TagProp *tag;
- g_assert(adpProp != NULL);
- g_assert(tagProp != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(tagProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
while (len < g_list_length(adpProp->tagList)) {
tag = g_list_nth_data(adpProp->tagList, len);
guint len = 0;
DevProp *dev;
- g_assert(adpProp != NULL);
- g_assert(devProp != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(devProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
while (len < g_list_length(adpProp->devList)) {
dev = g_list_nth_data(adpProp->devList, len);
errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
- g_assert(adpProp != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
if (adpProp->proxy != NULL) {
g_signal_handlers_disconnect_by_func(adpProp->proxy,
GList *node = NULL;
GList **adpList;
- g_assert(adpProp != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
NEARDAL_TRACEF("Removing adapter:%s\n", adpProp->name);
gchar **rcdArray = NULL;
NEARDAL_TRACEIN();
- g_assert(devProp != NULL);
- g_assert(devProp->proxy != NULL);
+ NEARDAL_ASSERT_RET(devProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(devProp->proxy != NULL
+ , NEARDAL_ERROR_GENERAL_ERROR);
org_neard_dev__call_get_properties_sync(devProp->proxy, &tmp, NULL,
&gerror);
errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
- g_assert(devProp != NULL);
+ NEARDAL_ASSERT_RET(devProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
if (devProp->proxy != NULL) {
g_signal_handlers_disconnect_by_func(devProp->proxy,
RcdProp *rcdProp;
gsize len;
- g_assert(devProp != NULL);
+ NEARDAL_ASSERT(devProp != NULL);
if (devProp->notified == FALSE && neardalMgr.cb.dev_found != NULL) {
(neardalMgr.cb.dev_found)(devProp->name,
errorCode_t err;
GError *gerror = NULL;
- g_assert(devProp != NULL);
+ NEARDAL_ASSERT_RET(devProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
if (builder == NULL)
DevProp *devProp = NULL;
AdpProp *adpProp = parent;
- g_assert(devName != NULL);
+ NEARDAL_ASSERT_RET( ((adpProp != NULL) && (devName != NULL))
+ , NEARDAL_ERROR_INVALID_PARAMETER);
NEARDAL_TRACEF("Adding dev:%s\n", devName);
devProp = g_try_malloc0(sizeof(DevProp));
GList *node;
AdpProp *adpProp;
- g_assert(devProp != NULL);
+ NEARDAL_ASSERT(devProp != NULL);
NEARDAL_TRACEF("Removing dev:%s\n", devProp->name);
/* Remove all devs */
typedef int errorCode_t;
/*! @brief Success! (It's not an error) */
-#define NEARDAL_SUCCESS ((errorCode_t) 1)
+#define NEARDAL_SUCCESS ((errorCode_t) 1)
/*! @brief General error */
#define NEARDAL_ERROR_GENERAL_ERROR ((errorCode_t) -1)
/*! @brief Invalid parameter */
#define NEARDAL_ERROR_INVALID_PARAMETER ((errorCode_t) -2)
/*! @brief Memory allocation error */
-#define NEARDAL_ERROR_NO_MEMORY ((errorCode_t) -3)
+#define NEARDAL_ERROR_NO_MEMORY ((errorCode_t) -3)
/*! @brief DBUS general error */
#define NEARDAL_ERROR_DBUS ((errorCode_t) -4)
/*! @brief DBUS error (Can not create a proxy to dbus interface) */
/*! @brief Neard service, polling already active */
#define NEARDAL_ERROR_POLLING_ALREADY_ACTIVE ((errorCode_t) -8)
/*! @brief Neard service, no NEARDAL tag present */
-#define NEARDAL_ERROR_NO_TAG ((errorCode_t) -9)
+#define NEARDAL_ERROR_NO_TAG ((errorCode_t) -9)
/*! @brief Neard service, no NEARDAL record present */
-#define NEARDAL_ERROR_NO_RECORD ((errorCode_t) -10)
+#define NEARDAL_ERROR_NO_RECORD ((errorCode_t) -10)
/*! @brief Invalid record format */
#define NEARDAL_ERROR_INVALID_RECORD ((errorCode_t) -11)
/*! @brief Neard service, no NEARDAL device present */
{
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
(void) arg_unnamed_arg1; /* remove warning */
(void) user_data; /* remove warning */
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
NEARDAL_TRACEF("arg_unnamed_arg0='%s'\n", arg_unnamed_arg0);
/* Adapters List ignored... */
errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
(void) user_data; /* remove warning */
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
+
err = neardal_adp_add((char *) arg_unnamed_arg0);
if (err != NEARDAL_SUCCESS)
return;
GList *node = NULL;
NEARDAL_TRACEIN();
- g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
(void) user_data; /* remove warning */
+ NEARDAL_ASSERT(arg_unnamed_arg0 != NULL);
+
node = g_list_first(neardalMgr.prop.adpList);
if (node == NULL) {
NEARDAL_TRACE_ERR("NFC adapter not found! (%s)\n",
static errorCode_t neardal_mgr_prv_get_all_adapters(gchar ***adpArray,
gsize *len)
{
- errorCode_t err = NEARDAL_ERROR_NO_ADAPTER;
+ errorCode_t err = NEARDAL_ERROR_NO_ADAPTER;
GVariant *tmp = NULL;
GVariant *tmpOut = NULL;
- g_assert(adpArray != NULL);
+ NEARDAL_ASSERT_RET(adpArray != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
/* Invoking method 'GetProperties' on Neard Manager */
if (org_neard_mgr__call_get_properties_sync(neardalMgr.proxy, &tmp,
AdpProp *adapter;
GList *tmpList;
- g_assert(adpProp != NULL);
+ NEARDAL_ASSERT_RET(adpProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
tmpList = neardalMgr.prop.adpList;
while (len < g_list_length(tmpList)) {
GVariant *tmpOut = NULL;
NEARDAL_TRACEIN();
- g_assert(rcd != NULL);
- g_assert(rcd->proxy != NULL);
+ NEARDAL_ASSERT_RET(rcd != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(rcd->proxy != NULL
+ , NEARDAL_ERROR_INVALID_PARAMETER);
org_neard_rcd__call_get_properties_sync(rcd->proxy, &tmp, NULL,
&gerror);
static errorCode_t neardal_rcd_prv_init(RcdProp *rcd)
{
NEARDAL_TRACEIN();
- g_assert(rcd != NULL);
+ NEARDAL_ASSERT_RET(rcd != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
if (rcd->proxy != NULL)
g_object_unref(rcd->proxy);
NEARDAL_TRACEIN();
- g_assert(rcd != NULL);
+ NEARDAL_ASSERT_RET(rcd != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
/* Type */
if (rcd->type != NULL)
RcdProp *rcd = NULL;
TagProp *tagProp = parent;
- g_assert(rcdName != NULL);
- g_assert(parent != NULL);
+ NEARDAL_ASSERT_RET((rcdName != NULL) && (parent != NULL)
+ , NEARDAL_ERROR_INVALID_PARAMETER);
NEARDAL_TRACEF("Adding record:%s\n", rcdName);
rcd = g_try_malloc0(sizeof(RcdProp));
TagProp *tagProp;
NEARDAL_TRACEIN();
- g_assert(rcd != NULL);
+ NEARDAL_ASSERT(rcd != NULL);
tagProp = rcd->parent;
NEARDAL_TRACEF("Removing record:%s\n", rcd->name);
gchar **rcdArray = NULL;
NEARDAL_TRACEIN();
- g_assert(tagProp != NULL);
- g_assert(tagProp->proxy != NULL);
+ NEARDAL_ASSERT_RET(tagProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
+ NEARDAL_ASSERT_RET(tagProp->proxy != NULL
+ , NEARDAL_ERROR_GENERAL_ERROR);
org_neard_tag__call_get_properties_sync(tagProp->proxy, &tmp, NULL,
&gerror);
errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
- g_assert(tagProp != NULL);
+ NEARDAL_ASSERT_RET(tagProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
if (tagProp->proxy != NULL) {
g_signal_handlers_disconnect_by_func(tagProp->proxy,
guint len;
RcdProp *rcd = NULL;
- g_assert(tagProp != NULL);
- g_assert(rcdName != NULL);
- g_assert(rcdProp != NULL);
-
+ NEARDAL_ASSERT_RET((tagProp != NULL) && (rcdName != NULL)
+ && (rcdProp != NULL)
+ , NEARDAL_ERROR_INVALID_PARAMETER);
+
len = 0;
while (len < g_list_length(tagProp->rcdList)) {
rcd = g_list_nth_data(tagProp->rcdList, len);
RcdProp *rcdProp;
gsize len;
- g_assert(tagProp != NULL);
+ NEARDAL_ASSERT(tagProp != NULL);
if (tagProp->notified == FALSE && neardalMgr.cb.tag_found != NULL) {
(neardalMgr.cb.tag_found)(tagProp->name,
errorCode_t err;
GError *gerror = NULL;
- g_assert(tagProp != NULL);
+ NEARDAL_ASSERT_RET(tagProp != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
if (builder == NULL)
TagProp *tagProp = NULL;
AdpProp *adpProp = parent;
- g_assert(tagName != NULL);
+ NEARDAL_ASSERT_RET((tagName != NULL) && (parent != NULL)
+ , NEARDAL_ERROR_INVALID_PARAMETER);
NEARDAL_TRACEF("Adding tag:%s\n", tagName);
tagProp = g_try_malloc0(sizeof(TagProp));
GList *node;
AdpProp *adpProp;
- g_assert(tagProp != NULL);
+ NEARDAL_ASSERT(tagProp != NULL);
NEARDAL_TRACEF("Removing tag:%s\n", tagProp->name);
/* Remove all tags */
****************************************************************************/
void neardal_tools_prv_free_gerror(GError **gerror)
{
- g_assert(gerror != NULL);
+ NEARDAL_ASSERT(gerror != NULL);
if (*gerror != NULL)
g_error_free(*gerror);
int len, lenNfcPath, lenReqPath;
int ret = FALSE;
- g_assert(neardalPath != NULL);
- g_assert(reqPath != NULL);
+ NEARDAL_ASSERT_RET((neardalPath != NULL) && (reqPath != NULL)
+ , FALSE);
lenNfcPath = strlen(neardalPath);
lenReqPath = strlen(reqPath);
{
GVariant *tmp = NULL;
- g_assert(builder != NULL);
+ NEARDAL_ASSERT_RET(builder != NULL, NEARDAL_ERROR_INVALID_PARAMETER);
switch (gVariantType) {
case G_TYPE_STRING:
/*****************************************************************************
+ * Debugging macro to manage assertion.
+ *****************************************************************************/
+#define NEARDAL_ASSERT(cond) do { \
+ if (!(cond)) { \
+ neardal_trace(stderr, "\nASSERT!! %s -> %s():l%d: cond=(%s)\n\n" \
+ , __FILE__, __func__, __LINE__, #cond); \
+ return; \
+ } \
+} while (0);
+
+#define NEARDAL_ASSERT_RET(cond, val) do { \
+ if (!(cond)) { \
+ neardal_trace(stderr, "\nASSERT!! %s -> %s():l%d: cond=(%s)\n\n" \
+ , __FILE__, __func__, __LINE__, #cond); \
+ return val; \
+ } \
+} while (0);
+
+/*****************************************************************************
* neardal_tools_prv_free_gerror: freeing gerror in neardal context
*****************************************************************************/
void neardal_tools_prv_free_gerror(GError **gerror);