diff options
Diffstat (limited to 'cython/mobilebackup.pxi')
| -rw-r--r-- | cython/mobilebackup.pxi | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/cython/mobilebackup.pxi b/cython/mobilebackup.pxi index 2bbaebe..f6b13a9 100644 --- a/cython/mobilebackup.pxi +++ b/cython/mobilebackup.pxi | |||
| @@ -28,27 +28,33 @@ cdef class MobileBackupError(BaseError): | |||
| 28 | } | 28 | } |
| 29 | BaseError.__init__(self, *args, **kwargs) | 29 | BaseError.__init__(self, *args, **kwargs) |
| 30 | 30 | ||
| 31 | cdef class MobileBackupClient(PropertyListService): | 31 | cdef class MobileBackupClient(PropertyListClient): |
| 32 | cdef mobilebackup_client_t _c_client | 32 | cdef mobilebackup_client_t _c_client |
| 33 | 33 | ||
| 34 | def __cinit__(self, iDevice device not None, LockdownClient lockdown=None, *args, **kwargs): | 34 | def __cinit__(self, iDevice device not None, LockdownClient lockdown=None, *args, **kwargs): |
| 35 | cdef iDevice dev = device | 35 | cdef: |
| 36 | cdef LockdownClient lckd | 36 | iDevice dev = device |
| 37 | LockdownClient lckd | ||
| 38 | mobilebackup_error_t err | ||
| 37 | if lockdown is None: | 39 | if lockdown is None: |
| 38 | lckd = LockdownClient(dev) | 40 | lckd = LockdownClient(dev) |
| 39 | else: | 41 | else: |
| 40 | lckd = lockdown | 42 | lckd = lockdown |
| 41 | port = lckd.start_service("com.apple.mobilebackup") | 43 | port = lckd.start_service("com.apple.mobilebackup") |
| 42 | err = MobileBackupError(mobilebackup_client_new(dev._c_dev, port, &self._c_client)) | 44 | err = mobilebackup_client_new(dev._c_dev, port, &self._c_client) |
| 43 | if err: raise err | 45 | self.handle_error(err) |
| 44 | 46 | ||
| 45 | def __dealloc__(self): | 47 | def __dealloc__(self): |
| 48 | cdef mobilebackup_error_t err | ||
| 46 | if self._c_client is not NULL: | 49 | if self._c_client is not NULL: |
| 47 | err = MobileBackupError(mobilebackup_client_free(self._c_client)) | 50 | err = mobilebackup_client_free(self._c_client) |
| 48 | if err: raise err | 51 | self.handle_error(err) |
| 49 | 52 | ||
| 50 | cdef _send(self, plist.plist_t node): | 53 | cdef inline int16_t _send(self, plist.plist_t node): |
| 51 | return MobileBackupError(mobilebackup_send(self._c_client, node)) | 54 | return mobilebackup_send(self._c_client, node) |
| 52 | 55 | ||
| 53 | cdef _receive(self, plist.plist_t* node): | 56 | cdef inline int16_t _receive(self, plist.plist_t* node): |
| 54 | return MobileBackupError(mobilebackup_receive(self._c_client, node)) | 57 | return mobilebackup_receive(self._c_client, node) |
| 58 | |||
| 59 | cdef inline BaseError _error(self, int16_t ret): | ||
| 60 | return MobileBackupError(ret) | ||
