libimobiledevice
1.2.0
|
Synchronize data classes with a device and computer. More...
Data Structures | |
struct | mobilesync_anchors |
Macros | |
#define | MOBILESYNC_SERVICE_NAME "com.apple.mobilesync" |
Typedefs | |
typedef struct mobilesync_client_private | mobilesync_client_private |
typedef mobilesync_client_private * | mobilesync_client_t |
The client handle. | |
typedef mobilesync_anchors * | mobilesync_anchors_t |
Anchors used by the device and computer. More... | |
Enumerations | |
enum | mobilesync_error_t { MOBILESYNC_E_SUCCESS = 0, MOBILESYNC_E_INVALID_ARG = -1, MOBILESYNC_E_PLIST_ERROR = -2, MOBILESYNC_E_MUX_ERROR = -3, MOBILESYNC_E_BAD_VERSION = -4, MOBILESYNC_E_SYNC_REFUSED = -5, MOBILESYNC_E_CANCELLED = -6, MOBILESYNC_E_WRONG_DIRECTION = -7, MOBILESYNC_E_NOT_READY = -8, MOBILESYNC_E_UNKNOWN_ERROR = -256 } |
Error Codes. | |
enum | mobilesync_sync_type_t { MOBILESYNC_SYNC_TYPE_FAST, MOBILESYNC_SYNC_TYPE_SLOW, MOBILESYNC_SYNC_TYPE_RESET } |
The sync type of the current sync session. More... | |
Functions | |
mobilesync_error_t | mobilesync_client_new (idevice_t device, lockdownd_service_descriptor_t service, mobilesync_client_t *client) |
Connects to the mobilesync service on the specified device. More... | |
mobilesync_error_t | mobilesync_client_start_service (idevice_t device, mobilesync_client_t *client, const char *label) |
Starts a new mobilesync service on the specified device and connects to it. More... | |
mobilesync_error_t | mobilesync_client_free (mobilesync_client_t client) |
Disconnects a mobilesync client from the device and frees up the mobilesync client data. More... | |
mobilesync_error_t | mobilesync_receive (mobilesync_client_t client, plist_t *plist) |
Polls the device for mobilesync data. More... | |
mobilesync_error_t | mobilesync_send (mobilesync_client_t client, plist_t plist) |
Sends mobilesync data to the device. More... | |
mobilesync_error_t | mobilesync_start (mobilesync_client_t client, const char *data_class, mobilesync_anchors_t anchors, uint64_t computer_data_class_version, mobilesync_sync_type_t *sync_type, uint64_t *device_data_class_version, char **error_description) |
Requests starting synchronization of a data class with the device. More... | |
mobilesync_error_t | mobilesync_cancel (mobilesync_client_t client, const char *reason) |
Cancels a running synchronization session with a device at any time. More... | |
mobilesync_error_t | mobilesync_finish (mobilesync_client_t client) |
Finish a synchronization session of a data class on the device. More... | |
mobilesync_error_t | mobilesync_get_all_records_from_device (mobilesync_client_t client) |
Requests to receive all records of the currently set data class from the device. More... | |
mobilesync_error_t | mobilesync_get_changes_from_device (mobilesync_client_t client) |
Requests to receive only changed records of the currently set data class from the device. More... | |
mobilesync_error_t | mobilesync_clear_all_records_on_device (mobilesync_client_t client) |
Requests the device to delete all records of the current data class. More... | |
mobilesync_error_t | mobilesync_receive_changes (mobilesync_client_t client, plist_t *entities, uint8_t *is_last_record, plist_t *actions) |
Receives changed entitites of the currently set data class from the device. More... | |
mobilesync_error_t | mobilesync_acknowledge_changes_from_device (mobilesync_client_t client) |
Acknowledges to the device that the changes have been merged on the computer. More... | |
mobilesync_error_t | mobilesync_ready_to_send_changes_from_computer (mobilesync_client_t client) |
Verifies if the device is ready to receive changes from the computer. More... | |
mobilesync_error_t | mobilesync_send_changes (mobilesync_client_t client, plist_t entities, uint8_t is_last_record, plist_t actions) |
Sends changed entities of the currently set data class to the device. More... | |
mobilesync_error_t | mobilesync_remap_identifiers (mobilesync_client_t client, plist_t *mapping) |
Receives any remapped identifiers reported after the device merged submitted changes. More... | |
mobilesync_anchors_t | mobilesync_anchors_new (const char *device_anchor, const char *computer_anchor) |
Allocates memory for a new anchors struct initialized with the passed anchors. More... | |
void | mobilesync_anchors_free (mobilesync_anchors_t anchors) |
Free memory used by anchors. More... | |
plist_t | mobilesync_actions_new (void) |
Create a new actions plist to use in mobilesync_send_changes(). More... | |
void | mobilesync_actions_add (plist_t actions,...) |
Add one or more new key:value pairs to the given actions plist. More... | |
void | mobilesync_actions_free (plist_t actions) |
Free actions plist. More... | |
Synchronize data classes with a device and computer.
typedef mobilesync_anchors* mobilesync_anchors_t |
Anchors used by the device and computer.
The sync type of the current sync session.
mobilesync_error_t mobilesync_acknowledge_changes_from_device | ( | mobilesync_client_t | client | ) |
Acknowledges to the device that the changes have been merged on the computer.
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
void mobilesync_actions_add | ( | plist_t | actions, |
... | |||
) |
Add one or more new key:value pairs to the given actions plist.
actions | The actions to modify. |
... | KEY, VALUE, [KEY, VALUE], NULL |
void mobilesync_actions_free | ( | plist_t | actions | ) |
Free actions plist.
actions | The actions plist to free. Does nothing if NULL is passed. |
plist_t mobilesync_actions_new | ( | void | ) |
Create a new actions plist to use in mobilesync_send_changes().
void mobilesync_anchors_free | ( | mobilesync_anchors_t | anchors | ) |
Free memory used by anchors.
anchors | The anchors to free. |
mobilesync_anchors_t mobilesync_anchors_new | ( | const char * | device_anchor, |
const char * | computer_anchor | ||
) |
Allocates memory for a new anchors struct initialized with the passed anchors.
device_anchor | An anchor the device reported the last time or NULL if none is known yet which for instance is true on first synchronization. |
computer_anchor | An arbitrary string to use as anchor for the computer. |
mobilesync_error_t mobilesync_cancel | ( | mobilesync_client_t | client, |
const char * | reason | ||
) |
Cancels a running synchronization session with a device at any time.
client | The mobilesync client |
reason | The reason to supply to the device for cancelling |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
mobilesync_error_t mobilesync_clear_all_records_on_device | ( | mobilesync_client_t | client | ) |
Requests the device to delete all records of the current data class.
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_PLIST_ERROR | if the received plist is not of valid form |
mobilesync_error_t mobilesync_client_free | ( | mobilesync_client_t | client | ) |
Disconnects a mobilesync client from the device and frees up the mobilesync client data.
client | The mobilesync client to disconnect and free. |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if client is NULL. |
mobilesync_error_t mobilesync_client_new | ( | idevice_t | device, |
lockdownd_service_descriptor_t | service, | ||
mobilesync_client_t * | client | ||
) |
Connects to the mobilesync service on the specified device.
device | The device to connect to. |
service | The service descriptor returned by lockdownd_start_service. |
client | Pointer that will be set to a newly allocated mobilesync_client_t upon successful return. |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one or more parameters are invalid |
DEVICE_LINK_SERVICE_E_BAD_VERSION | if the mobilesync version on the device is newer. |
mobilesync_error_t mobilesync_client_start_service | ( | idevice_t | device, |
mobilesync_client_t * | client, | ||
const char * | label | ||
) |
Starts a new mobilesync service on the specified device and connects to it.
device | The device to connect to. |
client | Pointer that will point to a newly allocated mobilesync_client_t upon successful return. Must be freed using mobilesync_client_free() after use. |
label | The label to use for communication. Usually the program name. Pass NULL to disable sending the label in requests to lockdownd. |
mobilesync_error_t mobilesync_finish | ( | mobilesync_client_t | client | ) |
Finish a synchronization session of a data class on the device.
A session must have previously been started using mobilesync_start().
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_PLIST_ERROR | if the received plist is not of valid form |
mobilesync_error_t mobilesync_get_all_records_from_device | ( | mobilesync_client_t | client | ) |
Requests to receive all records of the currently set data class from the device.
The actually changes are retrieved using mobilesync_receive_changes() after this request has been successful.
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
mobilesync_error_t mobilesync_get_changes_from_device | ( | mobilesync_client_t | client | ) |
Requests to receive only changed records of the currently set data class from the device.
The actually changes are retrieved using mobilesync_receive_changes() after this request has been successful.
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
mobilesync_error_t mobilesync_ready_to_send_changes_from_computer | ( | mobilesync_client_t | client | ) |
Verifies if the device is ready to receive changes from the computer.
This call changes the synchronization direction so that mobilesync_send_changes() can be used to send changes to the device.
client | The mobilesync client |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_PLIST_ERROR | if the received plist is not of valid form |
MOBILESYNC_E_WRONG_DIRECTION | if the current sync direction does not permit this call |
MOBILESYNC_E_CANCELLED | if the device explicitly cancelled the session |
MOBILESYNC_E_NOT_READY | if the device is not ready to start receiving any changes |
mobilesync_error_t mobilesync_receive | ( | mobilesync_client_t | client, |
plist_t * | plist | ||
) |
Polls the device for mobilesync data.
client | The mobilesync client |
plist | A pointer to the location where the plist should be stored |
mobilesync_error_t mobilesync_receive_changes | ( | mobilesync_client_t | client, |
plist_t * | entities, | ||
uint8_t * | is_last_record, | ||
plist_t * | actions | ||
) |
Receives changed entitites of the currently set data class from the device.
client | The mobilesync client |
entities | A pointer to store the changed entity records as a PLIST_DICT |
is_last_record | A pointer to store a flag indicating if this submission is the last one |
actions | A pointer to additional flags the device is sending or NULL to ignore |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_CANCELLED | if the device explicitly cancelled the session |
mobilesync_error_t mobilesync_remap_identifiers | ( | mobilesync_client_t | client, |
plist_t * | mapping | ||
) |
Receives any remapped identifiers reported after the device merged submitted changes.
client | The mobilesync client |
mapping | A pointer to an array plist containing a dict of identifier remappings |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_PLIST_ERROR | if the received plist is not of valid form |
MOBILESYNC_E_WRONG_DIRECTION | if the current sync direction does not permit this call |
MOBILESYNC_E_CANCELLED | if the device explicitly cancelled the session |
mobilesync_error_t mobilesync_send | ( | mobilesync_client_t | client, |
plist_t | plist | ||
) |
Sends mobilesync data to the device.
client | The mobilesync client |
plist | The location of the plist to send |
mobilesync_error_t mobilesync_send_changes | ( | mobilesync_client_t | client, |
plist_t | entities, | ||
uint8_t | is_last_record, | ||
plist_t | actions | ||
) |
Sends changed entities of the currently set data class to the device.
client | The mobilesync client |
entities | The changed entity records as a PLIST_DICT |
is_last_record | A flag indicating if this submission is the last one |
actions | Additional actions for the device created with mobilesync_actions_new() or NULL if no actions should be passed |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid, |
MOBILESYNC_E_WRONG_DIRECTION | if the current sync direction does not permit this call |
mobilesync_error_t mobilesync_start | ( | mobilesync_client_t | client, |
const char * | data_class, | ||
mobilesync_anchors_t | anchors, | ||
uint64_t | computer_data_class_version, | ||
mobilesync_sync_type_t * | sync_type, | ||
uint64_t * | device_data_class_version, | ||
char ** | error_description | ||
) |
Requests starting synchronization of a data class with the device.
client | The mobilesync client |
data_class | The data class identifier to sync |
anchors | The anchors required to exchange with the device. The anchors allow the device to tell if the synchronization information on the computer and device are consistent to determine what sync type is required. |
computer_data_class_version | The version of the data class storage on the computer |
sync_type | A pointer to store the sync type reported by the device_anchor |
device_data_class_version | The version of the data class storage on the device |
error_description | A pointer to store an error message if reported by the device |
MOBILESYNC_E_SUCCESS | on success |
MOBILESYNC_E_INVALID_ARG | if one of the parameters is invalid |
MOBILESYNC_E_PLIST_ERROR | if the received plist is not of valid form |
MOBILESYNC_E_SYNC_REFUSED | if the device refused to sync |
MOBILESYNC_E_CANCELLED | if the device explicitly cancelled the sync request |