1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
import struct
from adb_shell import constants
class FileSyncMessage(object): # pylint: disable=too-few-public-methods
"""A helper class for packing FileSync messages.
Parameters
----------
command : bytes
TODO
arg0 : int
TODO
data : bytes
The data that will be sent
Attributes
----------
arg0 : int
TODO
command : int
The input parameter ``command`` converted to an integer via :const:`adb_shell.constants.FILESYNC_ID_TO_WIRE`
data : bytes
The data that will be sent
"""
def __init__(self, command, arg0=None, data=b''):
self.command = constants.FILESYNC_ID_TO_WIRE[command]
self.arg0 = arg0 or len(data)
self.data = data
def pack(self):
"""Returns this message in an over-the-wire format.
Returns
-------
bytes
The message packed into the format required by ADB
"""
return struct.pack(b'<2I', self.command, self.arg0)
class FileSyncListMessage(object): # pylint: disable=too-few-public-methods
"""A helper class for packing FileSync messages for the "list" service".
Parameters
----------
command : bytes
TODO
arg0 : int
TODO
arg1 : TODO
TODO
arg2 : TODO
TODO
data : bytes
The data that will be sent
Attributes
----------
arg0 : int
TODO
arg1 : TODO
TODO
arg2 : TODO
TODO
arg3 : int
The size of the data
command : int
The input parameter ``command`` converted to an integer via :const:`adb_shell.constants.FILESYNC_ID_TO_WIRE`
data : bytes
TODO
"""
def __init__(self, command, arg0, arg1, arg2, data=b''):
self.command = constants.FILESYNC_ID_TO_WIRE[command]
self.arg0 = arg0
self.arg1 = arg1
self.arg2 = arg2
self.arg3 = len(data)
self.data = data
def pack(self):
"""Returns this message in an over-the-wire format.
Returns
-------
bytes
The message packed into the format required by ADB
"""
return struct.pack(b'<5I', self.command, self.arg0, self.arg1, self.arg2, self.arg3)
class FileSyncStatMessage(object): # pylint: disable=too-few-public-methods
"""A helper class for packing FileSync messages for the "stat" service".
Parameters
----------
command : bytes
TODO
arg0 : int
TODO
arg1 : TODO
TODO
arg2 : TODO
TODO
Attributes
----------
arg0 : int
TODO
arg1 : TODO
TODO
arg2 : TODO
TODO
command : int
The input parameter ``command`` converted to an integer via :const:`adb_shell.constants.FILESYNC_ID_TO_WIRE`
data : bytes
The data that will be sent (always empty)
"""
def __init__(self, command, arg0, arg1, arg2):
self.command = constants.FILESYNC_ID_TO_WIRE[command]
self.arg0 = arg0
self.arg1 = arg1
self.arg2 = arg2
self.data = b''
def pack(self):
"""Returns this message in an over-the-wire format.
Returns
-------
bytes
The message packed into the format required by ADB
"""
return struct.pack(b'<4I', self.command, self.arg0, self.arg1, self.arg2)
|