[Internal: merge sync-agent]
[platform/core/system/sync-agent.git] / src / framework / plugin / data_connector_plugin.h
index b27bbb3..21bdec4 100755 (executable)
@@ -20,6 +20,8 @@
 
 #include "error.h"
 #include "struct.h"
+#include <glib.h>
+
 #include "plugin/data_connector_resource.h"
 #include "data-adapter/error.h"
 
@@ -179,6 +181,25 @@ typedef sync_agent_da_return_e(*plugin_execute_cb) (int account_id, const char *
 typedef int (*plugin_get_used_item_count_cb) (void);
 
 /**
+ * @brief Prototype of plugin function for getting item used count
+ * @return calendar exdate_item_count on success, negative value on error
+ */
+typedef int (*plugin_get_deleted_exdate_item_count) (void);
+
+/**
+ * @brief Prototype of plugin function for checking whether exdate item exist
+ * @return calendar exdate_item_count on success, negative value on error
+ */
+typedef int (*plugin_is_exist_exdate_item) (const char *fw_parent_id, const char *child_vcalendar);
+
+/**
+ * @brief Prototype of plugin function for updating the exdate parent item
+ * @return void
+ */
+typedef void (*plugin_construct_exdate_parent_item) (char *parent_service_id);
+
+
+/**
  * @brief Prototype of plugin function for getting item used count for folder
  * @param[in] account_id service account id
  * @param[in] folder_id service folder id
@@ -284,6 +305,13 @@ typedef void (*plugin_set_callback_update_item_cb) (sync_agent_update_item_cb_pl
  */
 typedef void (*plugin_set_callback_get_account_id_list_cb) (sync_agent_get_account_id_list_cb_plugin callback);
 
+/**
+ * @brief Prototype of plugin function for setting callback function to handle child item delete from storage
+ * @param[in] callback callback function - this function is provided from sync-agent-framework
+ */
+typedef void (*plugin_set_callback_delete_child_item_cb) (sync_agent_del_child_item_cb_plugin callback);
+
+
 /********************* Get Meta Info ******************/
 
 /**
@@ -328,6 +356,83 @@ typedef int (*plugin_get_field_value_cb) (int field_name, int child_field_name,
 typedef int (*plugin_get_is_support_feature_cb) (int feature);
 
 /**
+ * @brief Prototype of plugin function for get max name length of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_max_name_length_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get max number length of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_max_number_length_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get max email length of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_max_email_length_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get empty count of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_empty_count_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get empty number count of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_empty_number_count_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get empty email count of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_empty_email_count_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get addressbook id of sim contact
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef int (*plugin_get_info_sim_contact_addressbook_id_cb) (void);
+
+/**
+ * @brief Prototype of plugin function for get item id of sim contact
+ * @param[out] item id of sim contact provided data-connector plugin
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_get_info_sim_contact_item_id_cb) (int sim_addressbook_id, GList **item_id);
+
+/**
+ * @brief Prototype of plugin function for get data of sim contact
+ * @param[out] item id of sim contact provided data-connector plugin
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_get_info_sim_contact_item_cb) (int item_id, char **data);
+
+/**
+ * @brief Prototype of plugin function for add sim contact
+ * @param[out] item id of sim contact provided data-connector plugin
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_add_sim_contact_item_cb) (int sim_addressbook_id, int **item_id, char *data);
+
+/**
+ * @brief Prototype of plugin function for write sim contact
+ * @param[out] item id of sim contact provided data-connector plugin
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_write_sim_contact_item_cb) (int item_id, char *data);
+
+/**
+ * @brief Prototype of plugin function for delete sim contact
+ * @param[out] item id of sim contact provided data-connector plugin
+ * @return SYNC_AGENT_DA_SUCCESS on success, otherwise error
+ */
+typedef sync_agent_da_return_e(*plugin_delete_sim_contact_item_cb) (int item_id);
+
+/**
  * @brief Structure for data-connector plugin function pointer set
  */
 typedef struct {
@@ -348,10 +453,12 @@ typedef struct {
        plugin_get_folder_cb func_get_folder; /**< function pointer of plugin_get_folder_cb */
        plugin_execute_cb func_execute; /**< function pointer of plugin_execute_cb */
        plugin_get_used_item_count_cb func_get_used_item_cnt; /**< function pointer of plugin_get_used_item_count_cb */
+       plugin_get_deleted_exdate_item_count func_get_deleted_exdate_item_cnt; /**< function pointer of plugin_get_deleted_exdate_item_count_cb */
+       plugin_is_exist_exdate_item func_is_exist_exdate_item; /**< function pointer of plugin_is_exist_exdate_item */
+       plugin_construct_exdate_parent_item func_construct_exdate_parent_item; /**< function pointer of plugin_construct_exdate_parent_item */
        plugin_get_used_count_for_folder_cb func_get_used_cnt_for_folder; /**< function pointer of plugin_get_used_count_for_folder_cb */
        plugin_backup_service_items_to_file_cb func_backup_service_items_to_file; /**< function pointer of plugin_backup_service_items_to_file_cb */
        plugin_restore_service_items_from_file_cb func_restore_service_items_from_file; /**< function pointer of plugin_restore_service_items_from_file_cb */
-
        plugin_get_folder_id_list_cb func_get_folder_id_list; /**< function pointer of plugin_get_folder_id_list_cb */
        plugin_get_account_id_list_cb func_get_account_id_list; /**< function pointer of plugin_get_account_id_list_cb */
        plugin_get_changed_item_for_folder_add_cb func_get_chaned_item_for_folder_add; /**< function pointer of plugin_get_changed_item_for_folder_add_cb */
@@ -361,6 +468,7 @@ typedef struct {
        plugin_start_listening_change_noti_cb func_start_listening_change_noti; /**< function pointer of plugin_start_listening_change_noti_cb */
        plugin_set_callback_add_item_cb func_set_callback_add_item; /**< function pointer of plugin_set_callback_add_item_cb */
        plugin_set_callback_delete_item_cb func_set_callback_delete_item; /**< function pointer of plugin_set_callback_delete_item_cb */
+       plugin_set_callback_delete_child_item_cb func_set_callback_delete_child_item; /**< function pointer of plugin_set_callback_delete_item_cb */
        plugin_set_callback_update_item_cb func_set_callback_update_item; /**< function pointer of plugin_set_callback_update_item_cb */
        plugin_set_callback_get_account_id_list_cb func_set_callback_get_account_id_list; /**< function pointer of plugin_set_callback_get_account_id_list_cb */
        plugin_get_max_item_count_cb func_get_max_item_count; /**< function pointer of plugin_get_max_item_count_cb */
@@ -368,6 +476,18 @@ typedef struct {
        plugin_get_max_field_count_cb func_get_max_field_count; /**< function pointer of plugin_get_max_field_count_cb */
        plugin_get_field_value_cb func_get_field_value; /**< function pointer of plugin_get_field_value_cb */
        plugin_get_is_support_feature_cb func_get_is_support_feature; /**< function pointer of plugin_get_is_support_feature_cb */
+       plugin_get_info_sim_contact_max_name_length_cb func_get_info_sim_contact_max_name_length; /**< function pointer of plugin_get_info_sim_contact_max_name_length_cb */
+       plugin_get_info_sim_contact_max_number_length_cb func_get_info_sim_contact_max_number_length; /**< function pointer of plugin_get_info_sim_contact_max_number_length_cb */
+       plugin_get_info_sim_contact_max_email_length_cb func_get_info_sim_contact_max_email_length; /**< function pointer of plugin_get_info_sim_contact_max_email_length_cb */
+       plugin_get_info_sim_contact_empty_count_cb func_get_info_sim_contact_empty_count; /**< function pointer of plugin_get_info_sim_contact_empty_count_cb */
+       plugin_get_info_sim_contact_empty_number_count_cb func_get_info_sim_contact_empty_number_count; /**< function pointer of plugin_get_info_sim_contact_empty_number_count_cb */
+       plugin_get_info_sim_contact_empty_email_count_cb func_get_info_sim_contact_empty_email_count; /**< function pointer of plugin_get_info_sim_contact_empty_email_count_cb */
+       plugin_get_info_sim_contact_addressbook_id_cb func_get_info_sim_contact_addressbook_id; /**< function pointer of plugin_get_info_sim_contact_addressbook_id_cb */
+       plugin_get_info_sim_contact_item_id_cb func_get_info_sim_contact_item_id; /**< function pointer of plugin_get_info_sim_contact_item_id_cb */
+       plugin_get_info_sim_contact_item_cb func_get_info_sim_contact_item; /**< function pointer of plugin_get_info_sim_contact_item_cb */
+       plugin_add_sim_contact_item_cb func_add_sim_contact_item; /**< function pointer of plugin_add_sim_contact_item_cb */
+       plugin_write_sim_contact_item_cb func_write_sim_contact_item; /**< function pointer of plugin_write_sim_contact_item_cb */
+       plugin_delete_sim_contact_item_cb func_delete_sim_contact_item; /**< function pointer of plugin_delete_sim_contact_item_cb */
 } plugin_data_connector_func_set_s;
 
 /**
@@ -542,6 +662,28 @@ plugin_execute_cb plugin_get_function_execute(int plugin_id);
 plugin_get_used_item_count_cb plugin_get_function_get_used_item_count(int plugin_id);
 
 /**
+ * @brief Get function pointer of plugin_get_deleted_exdate_item_count_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_deleted_exdate_item_count_cb on success, NULL on error
+ */
+plugin_get_deleted_exdate_item_count plugin_get_function_get_deleted_exdate_item_count(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_function_is_exist_exdate_item
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_function_is_exist_exdate_item on success, NULL on error
+ */
+plugin_is_exist_exdate_item plugin_function_is_exist_exdate_item(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_function_construct_exdate_parent_item
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_function_construct_exdate_parent_item on success, NULL on error
+ */
+plugin_construct_exdate_parent_item plugin_function_construct_exdate_parent_item(int plugin_id);
+
+
+/**
  * @brief Get function pointer of plugin_get_used_count_for_folder_cb
  * @param[in] plugin_id data-connector plugin id
  * @return function pointer of plugin_get_used_count_for_folder_cb on success, NULL on error
@@ -581,21 +723,21 @@ plugin_restore_service_items_from_file_cb plugin_get_function_restore_service_it
  * @param[in] plugin_id data-connector plugin id
  * @return function pointer of plugin_get_changed_item_for_folder_add_cb on success, NULL on error
  */
-plugin_get_changed_item_for_folder_add_cb plugin_get_function_get_chaned_item_for_folder_add(int plugin_id);
+plugin_get_changed_item_for_folder_add_cb plugin_get_function_get_changed_item_for_folder_add(int plugin_id);
 
 /**
  * @brief Get function pointer of plugin_get_changed_item_for_folder_delete_cb
  * @param[in] plugin_id data-connector plugin id
  * @return function pointer of plugin_get_changed_item_for_folder_delete_cb on success, NULL on error
  */
-plugin_get_changed_item_for_folder_delete_cb plugin_get_function_get_chaned_item_for_folder_delete(int plugin_id);
+plugin_get_changed_item_for_folder_delete_cb plugin_get_function_get_changed_item_for_folder_delete(int plugin_id);
 
 /**
  * @brief Get function pointer of plugin_get_changed_item_for_folder_update_cb
  * @param[in] plugin_id data-connector plugin id
  * @return function pointer of plugin_get_changed_item_for_folder_update_cb on success, NULL on error
  */
-plugin_get_changed_item_for_folder_update_cb plugin_get_function_get_chaned_item_for_folder_update(int plugin_id);
+plugin_get_changed_item_for_folder_update_cb plugin_get_function_get_changed_item_for_folder_update(int plugin_id);
 
 /**
  * @brief Get function pointer of plugin_get_last_change_point_cb
@@ -626,6 +768,14 @@ plugin_set_callback_add_item_cb plugin_get_function_set_callback_add_item(int pl
 plugin_set_callback_delete_item_cb plugin_get_function_set_callback_delete_item(int plugin_id);
 
 /**
+ * @brief Get function pointer of plugin_set_callback_delete_child_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_set_callback_delete_child_item_cb on success, NULL on error
+ */
+plugin_set_callback_delete_child_item_cb plugin_get_function_set_callback_delete_child_item(int plugin_id);
+
+
+/**
  * @brief Get function pointer of plugin_set_callback_update_item_cb
  * @param[in] plugin_id data-connector plugin id
  * @return function pointer of plugin_set_callback_update_item_cb on success, NULL on error
@@ -675,6 +825,90 @@ plugin_get_field_value_cb plugin_get_function_get_field_value(int plugin_id);
 plugin_get_is_support_feature_cb plugin_get_function_get_is_support_feature(int plugin_id);
 
 /**
+ * @brief Get function pointer of plugin_get_info_sim_contact_max_name_length_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_max_name_length_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_max_name_length_cb plugin_get_function_get_info_sim_contact_max_name_length(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_max_number_length_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_max_number_length_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_max_number_length_cb plugin_get_function_get_info_sim_contact_max_number_length(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_max_email_length_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_max_email_length_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_max_email_length_cb plugin_get_function_get_info_sim_contact_max_email_length(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_empty_count_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_empty_count_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_empty_count_cb plugin_get_function_get_info_sim_contact_empty_count(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_empty_number_count_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_empty_number_count_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_empty_number_count_cb plugin_get_function_get_info_sim_contact_empty_number_count(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_empty_email_count_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_empty_email_count_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_empty_email_count_cb plugin_get_function_get_info_sim_contact_empty_email_count(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_addressbook_id_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_addressbook_id_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_addressbook_id_cb plugin_get_function_get_info_sim_contact_addressbook_id(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_item_id_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_item_id_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_item_id_cb plugin_get_function_get_info_sim_contact_item_id(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_get_info_sim_contact_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_get_info_sim_contact_item_cb on success, NULL on error
+ */
+plugin_get_info_sim_contact_item_cb plugin_get_function_get_info_sim_contact_item(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_add_sim_contact_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_add_sim_contact_item_cb on success, NULL on error
+ */
+plugin_add_sim_contact_item_cb plugin_get_function_add_sim_contact_item(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_write_sim_contact_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_write_sim_contact_item_cb on success, NULL on error
+ */
+plugin_write_sim_contact_item_cb plugin_get_function_write_sim_contact_item(int plugin_id);
+
+/**
+ * @brief Get function pointer of plugin_delete_sim_contact_item_cb
+ * @param[in] plugin_id data-connector plugin id
+ * @return function pointer of plugin_delete_sim_contact_item_cb on success, NULL on error
+ */
+plugin_delete_sim_contact_item_cb plugin_get_function_delete_sim_contact_item(int plugin_id);
+
+/**
  *     @}
  */