You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
4.3 KiB
135 lines
4.3 KiB
|
|
/** @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);
|