summaryrefslogtreecommitdiff
path: root/server/include/geofence_dbus_server.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/include/geofence_dbus_server.h')
-rw-r--r--server/include/geofence_dbus_server.h113
1 files changed, 68 insertions, 45 deletions
diff --git a/server/include/geofence_dbus_server.h b/server/include/geofence_dbus_server.h
index 1d532c6..7448c2e 100644
--- a/server/include/geofence_dbus_server.h
+++ b/server/include/geofence_dbus_server.h
@@ -24,84 +24,93 @@
__BEGIN_DECLS
#include <gio/gio.h>
+typedef enum {
+ GEOFENCE_DBUS_SERVER_ERROR_NONE = 0x0,
+ GEOFENCE_DBUS_SERVER_ERROR_UNKNOWN,
+ GEOFENCE_DBUS_SERVER_ERROR_PARAMETER,
+ GEOFENCE_DBUS_SERVER_ERROR_MEMORY,
+ GEOFENCE_DBUS_SERVER_ERROR_CONNECTION,
+ GEOFENCE_DBUS_SERVER_ERROR_STATUS,
+ GEOFENCE_DBUS_SERVER_ERROR_DBUS_CALL,
+ GEOFENCE_DBUS_SERVER_ERROR_NO_RESULT,
+} geofence_dbus_server_error_e;
+
+
+typedef void *geofence_dbus_server_h;
+
+
+#if SUPPORT_MULTI_CLIENT
/**
* @brief Callback for setting the options
*/
-typedef void (*GeofenceDbusSetOptionsCB) (GVariant * options, gpointer userdata);
+typedef void (*GeofenceDbusSetOptionsCB)(GVariant *options, gpointer userdata);
+#endif
/**
* @brief Callback for shutting down the Dbus
*/
-typedef void (*GeofenceDbusShutdownCB) (gpointer userdata, gboolean *shutdown_arr);
+typedef void (*GeofenceDbusShutdownCB)(gpointer userdata, gboolean shutdown_arr);
+
/* for geofence callbacks */
/**
* @brief Callback for adding the fence
*/
-typedef gint (*GeofenceAddGeofenceCB) (const gchar * app_id, gint place_id, gint geofence_type, gdouble latitude, gdouble longitude, gint radius, const gchar * address, const gchar * bssid, const gchar * ssid, gpointer userdata);
+typedef gint(*GeofenceAddGeofenceCB)(const gchar *app_id, gint place_id, gint geofence_type, gdouble latitude, gdouble longitude, gint radius, const gchar *address, const gchar *bssid, const gchar *ssid, gpointer userdata);
/**
-* @brief Callback for adding the place
+* @brief Callback for deleting the geofence
*/
-typedef gint (*GeofenceAddPlaceCB) (const gchar * app_id, const gchar * place_name, gpointer userdata);
+typedef void (*GeofenceDeleteGeofenceCB)(gint fence_id, const gchar *app_id, gpointer userdata);
/**
-* @brief Callback for enabling the geofence
+* @brief Callback for getting the fence list
*/
-typedef void (*GeofenceEnableGeofenceCB) (gint fence_id, const gchar *app_id, gboolean enable, gpointer userdata);
+typedef GVariant *(*GeofenceGetGeofencesCB)(int place_id, const gchar *app_id, int *fence_cnt, int *error_code, gpointer userdata);
/**
-* @brief Callback for updating the place
+* @brief Callback for enabling the geofence
*/
-typedef void (*GeofenceUpdatePlaceCB) (gint place_id, const gchar *app_id, const gchar *place_name, gpointer userdata);
+typedef void (*GeofenceEnableGeofenceCB)(gint fence_id, const gchar *app_id, gboolean enable, gpointer userdata);
+
/**
-* @brief Callback for deleting the geofence
+* @brief Callback for Starting the Geofence service
*/
-typedef void (*GeofenceDeleteGeofenceCB) (gint fence_id, const gchar *app_id, gpointer userdata);
+typedef void (*GeofenceStartGeofenceCB)(gint fence_id, const gchar *app_id, gpointer userdata);
/**
-* @brief Callback for deleting the place
+* @brief Callback for Stopping the Geofence service
*/
-typedef void (*GeofenceDeletePlaceCB) (gint place_id, const gchar *app_id, gpointer userdata);
+typedef void (*GeofenceStopGeofenceCB)(gint fence_id, const gchar *app_id, gpointer userdata);
+
+
+/* for place callbacks */
/**
-* @brief Callback for Starting the Geofence service
+* @brief Callback for adding the place
*/
-typedef void (*GeofenceStartGeofenceCB) (gint fence_id, const gchar *app_id, gpointer userdata);
+typedef gint(*GeofenceAddPlaceCB)(const gchar *app_id, const gchar *place_name, gpointer userdata);
/**
-* @brief Callback for Stopping the Geofence service
+* @brief Callback for deleting the place
*/
-typedef void (*GeofenceStopGeofenceCB) (gint fence_id, const gchar *app_id, gpointer userdata);
+typedef void (*GeofenceDeletePlaceCB)(gint place_id, const gchar *app_id, gpointer userdata);
/**
-* @brief Callback for getting the place name
+* @brief Callback for updating the place
*/
-typedef void (*GeofenceGetPlaceNameGeofenceCB) (int place_id, const gchar *app_id, char **place_name, int *error_code, gpointer userdata);
+typedef void (*GeofenceUpdatePlaceCB)(gint place_id, const gchar *app_id, const gchar *place_name, gpointer userdata);
/**
-* @brief Callback for getting the fence list
+* @brief Callback for getting the place name
*/
-typedef GVariant * (*GeofenceGetlistGeofenceCB) (int place_id, const gchar *app_id, int *fenceCnt, int *error_code, gpointer userdata);
+typedef void (*GeofenceGetPlaceNameCB)(int place_id, const gchar *app_id, char **place_name, int *error_code, gpointer userdata);
/**
* @brief Callback for getting the place list
*/
-typedef GVariant * (*GeofenceGetPlaceListGeofenceCB) (const gchar *app_id, int *fenceCnt, int *error_code, gpointer userdata);
-
-typedef enum {
- GEOFENCE_DBUS_SERVER_ERROR_NONE = 0x0,
- GEOFENCE_DBUS_SERVER_ERROR_UNKNOWN,
- GEOFENCE_DBUS_SERVER_ERROR_PARAMETER,
- GEOFENCE_DBUS_SERVER_ERROR_MEMORY,
- GEOFENCE_DBUS_SERVER_ERROR_CONNECTION,
- GEOFENCE_DBUS_SERVER_ERROR_STATUS,
- GEOFENCE_DBUS_SERVER_ERROR_DBUS_CALL,
- GEOFENCE_DBUS_SERVER_ERROR_NO_RESULT,
-} geofence_dbus_server_error_e;
-
-typedef void *geofence_dbus_server_h;
+typedef GVariant *(*GeofenceGetPlacesCB)(const gchar *app_id, int *fence_cnt, int *error_code, gpointer userdata);
/**
* @brief API to send the geofence status to the application
@@ -109,32 +118,46 @@ typedef void *geofence_dbus_server_h;
* @param[in] app_id - The application to which the status needs to be sent
* @param[in] fence_state - The state of the fence whether in/out
* @return int
-* @retval GEOFENCE_DBUS_SERVER_ERROR_NONE
+* @retval GEOFENCE_DBUS_SERVER_ERROR_NONE
*/
int geofence_dbus_server_send_geofence_inout_changed(geofence_dbus_server_h geofence_dbus_server, const gchar *app_id, gint fence_id, gint access_type, gint fence_state);
int geofence_dbus_server_send_geofence_event_changed(geofence_dbus_server_h geofence_dbus_server, gint place_id, gint fence_id, gint access_type, const gchar *app_id, gint error, gint state);
+typedef struct {
+#if SUPPORT_MULTI_CLIENT
+ /* size_t size; */
+ GeofenceDbusSetOptionsCB set_options_cb;
+#endif
+ GeofenceDbusShutdownCB shutdown_cb;
+
+ GeofenceAddGeofenceCB add_geofence_cb;
+ GeofenceDeleteGeofenceCB delete_geofence_cb;
+ GeofenceGetGeofencesCB get_geofences_cb;
+ GeofenceEnableGeofenceCB enable_geofence_cb;
+ GeofenceStartGeofenceCB start_geofence_cb;
+ GeofenceStopGeofenceCB stop_geofence_cb;
+
+ GeofenceAddPlaceCB add_place_cb;
+ GeofenceUpdatePlaceCB update_place_cb;
+ GeofenceDeletePlaceCB delete_place_cb;
+ GeofenceGetPlaceNameCB get_place_name_cb;
+ GeofenceGetPlacesCB get_places_cb;
+} geofence_dbus_callback_s;
+
/**
* @brief API to create the server
* @param[in] service_name - Name of the service for which the server has to be created
* @param[in] service_path - Path for the service
-* @param[in] name - Server name
-* @param[in] description - Description about the server
* @param[in] geofence_dbus_server - Dbus server pointer
-* @param[in] add_geofence_cb - Callback for add geofence funtionality
-* @param[in] enable_geofence_cb - Callback for enable geofence functionality
-* @param[in] delete_fence_cb - Callback for delete geofence funtionality
-* @param[in] getlist_fence_cb - Callback for getlist functionality
-* @param[in] start_geofence_cb - Callback for start geofence functionality
-* @param[in] stop_geofence_cb - Callback for stopping the geofence functionality
+* @param[in] geofence_dbus_callback - Callback for all dbus interface
* @param[in] userdata - Userdata if any which will come back in the callbacks
* return int
* retval GEOFENCE_DBUS_SERVER_ERROR_NONE if success
GEOFENCE_DBUS_SERVER_ERROR_MEMORY if failure
*/
-int geofence_dbus_server_create(char *service_name, char *service_path, char *name, char *description, geofence_dbus_server_h *geofence_dbus_server, GeofenceAddGeofenceCB add_geofence_cb, GeofenceAddPlaceCB add_place_cb, GeofenceEnableGeofenceCB enable_geofence_cb, GeofenceUpdatePlaceCB update_place_cb, GeofenceDeleteGeofenceCB delete_fence_cb, GeofenceDeletePlaceCB delete_place_cb, GeofenceGetPlaceNameGeofenceCB getplacename_fence_cb, GeofenceGetlistGeofenceCB getlist_fence_cb, GeofenceGetPlaceListGeofenceCB getplacelist_fence_cb, GeofenceStartGeofenceCB start_geofence_cb, GeofenceStopGeofenceCB stop_geofence_cb, gpointer userdata);
+int geofence_dbus_server_create(geofence_dbus_server_h *geofence_dbus_server, geofence_dbus_callback_s *geofence_dbus_callback, gpointer userdata);
/**
* @brief API to destroy the dbus server which was created