diff options
Diffstat (limited to 'debian/opensync/opensync-0.22/osengine/osengine_status.h')
-rw-r--r-- | debian/opensync/opensync-0.22/osengine/osengine_status.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/debian/opensync/opensync-0.22/osengine/osengine_status.h b/debian/opensync/opensync-0.22/osengine/osengine_status.h new file mode 100644 index 00000000..f78e8d39 --- /dev/null +++ b/debian/opensync/opensync-0.22/osengine/osengine_status.h @@ -0,0 +1,134 @@ + +/** @brief The types of status updates for members + * @ingroup OSEnginePublic + **/ +typedef enum { + /** The member just connected */ + MEMBER_CONNECTED, + /** The member just sent its changes */ + MEMBER_SENT_CHANGES, + /** The member just wrote its changes */ + MEMBER_COMMITTED_ALL, + /** The member just disconnected */ + MEMBER_DISCONNECTED, + /** The member had problems connecting */ + MEMBER_CONNECT_ERROR, + /** The member had problems getting the changes */ + MEMBER_GET_CHANGES_ERROR, + /** The member had problems getting the changes */ + MEMBER_COMMITTED_ALL_ERROR, + /** The member had problems during sync_done */ + MEMBER_SYNC_DONE_ERROR, + /** There was an error while disconnecting */ + MEMBER_DISCONNECT_ERROR +} memberupdatetype; + +/** @brief The types of status updates for changes + * @ingroup OSEnginePublic + **/ +typedef enum { + /** The change was just received */ + CHANGE_RECEIVED = 1, + /** The change was just received (Only info) */ + CHANGE_RECEIVED_INFO = 2, + /** The change was just written */ + CHANGE_SENT = 3, + /** There was an problem writing */ + CHANGE_WRITE_ERROR = 4, + /** There was an problem receiving the change */ + CHANGE_RECV_ERROR = 5 +} changeupdatetype; + +/** @brief The types of status updates for mappings + * @ingroup OSEnginePublic + **/ +typedef enum { + /** The mapping has just been solved */ + MAPPING_SOLVED = 1, + /** The mapping has just been completely synced */ + MAPPING_SYNCED = 2, + /** There was an error writing on of the changes */ + MAPPING_WRITE_ERROR = 3 +} mappingupdatetype; + +/** @brief The types of status updates for members + * @ingroup OSEnginePublic + **/ +typedef enum { + /** All clients have connected or had an error during connection */ + ENG_ENDPHASE_CON = 1, + /** All clients have sent their changes to the syncengine */ + ENG_ENDPHASE_READ = 2, + /** All clients have written their changes */ + ENG_ENDPHASE_WRITE = 3, + /** All clients have disconnected */ + ENG_ENDPHASE_DISCON = 4, + /** There was an error */ + ENG_ERROR = 5, + /** The sync is done and was successfull (My favorite message) */ + ENG_SYNC_SUCCESSFULL = 6, + /** The previous sync was unclean and the engine will perform a slow-sync now */ + ENG_PREV_UNCLEAN = 7, + /** All conflicts have been reported. */ + ENG_END_CONFLICTS = 8 +} engineupdatetype; + + +/*! @brief Struct for the member status callback + * @ingroup OSEnginePublic + */ +typedef struct OSyncMemberUpdate { + /** The type of the status update */ + memberupdatetype type; + /** The member for which the status update is */ + OSyncMember *member; + /** If the status was a error, this error will be set */ + OSyncError *error; +} OSyncMemberUpdate; + +/*! @brief Struct for the change status callback + * @ingroup OSEnginePublic + */ +typedef struct OSyncChangeUpdate { + /** The type of the status update */ + changeupdatetype type; + /** The change for which the status update is */ + OSyncChange *change; + /** The id of the member which sent this change */ + int member_id; + /** The id of the mapping to which this change belongs if any */ + int mapping_id; + /** If the status was a error, this error will be set */ + OSyncError *error; +} OSyncChangeUpdate; + +/*! @brief Struct for the mapping status callback + * @ingroup OSEnginePublic + */ +typedef struct OSyncMappingUpdate { + /** The type of the status update */ + mappingupdatetype type; + /** If the mapping was already solved, this will have the id if the winning entry */ + long long int winner; + /** The mapping for which the status update is */ + OSyncMapping *mapping; + /** If the status was a error, this error will be set */ + OSyncError *error; +} OSyncMappingUpdate; + +/*! @brief Struct for the engine status callback + * @ingroup OSEnginePublic + */ +typedef struct OSyncEngineUpdate { + /** The type of the status update */ + engineupdatetype type; + /** If the status was a error, this error will be set */ + OSyncError *error; +} OSyncEngineUpdate; + + +void osync_status_conflict(OSyncEngine *engine, OSyncMapping *mapping); +void osync_status_update_member(OSyncEngine *engine, OSyncClient *client, memberupdatetype type, OSyncError **error); +void osync_status_update_change(OSyncEngine *engine, OSyncChange *change, changeupdatetype type, OSyncError **error); +void osync_status_update_mapping(OSyncEngine *engine, OSyncMapping *mapping, mappingupdatetype type, OSyncError **error); +void osync_status_update_engine(OSyncEngine *engine, engineupdatetype type, OSyncError **error); |