78 @param fx remote function name to execute (str) |
78 @param fx remote function name to execute (str) |
79 @param fn filename for identification (str) |
79 @param fn filename for identification (str) |
80 @param data return value(s) (any basic datatype) |
80 @param data return value(s) (any basic datatype) |
81 """ |
81 """ |
82 packedData = json.dumps([fx, fn, data]) |
82 packedData = json.dumps([fx, fn, data]) |
83 if sys.version_info[0] == 3: |
83 if sys.version_info[0] >= 3: |
84 packedData = bytes(packedData, 'utf-8') |
84 packedData = bytes(packedData, 'utf-8') |
85 header = struct.pack( |
85 header = struct.pack( |
86 b'!II', len(packedData), adler32(packedData) & 0xffffffff) |
86 b'!II', len(packedData), adler32(packedData) & 0xffffffff) |
87 self.connection.sendall(header) |
87 self.connection.sendall(header) |
88 self.connection.sendall(packedData) |
88 self.connection.sendall(packedData) |
152 if messageType != b"JOB ": |
152 if messageType != b"JOB ": |
153 continue |
153 continue |
154 |
154 |
155 assert adler32(packedData) & 0xffffffff == datahash, \ |
155 assert adler32(packedData) & 0xffffffff == datahash, \ |
156 'Hashes not equal' |
156 'Hashes not equal' |
157 if sys.version_info[0] == 3: |
157 if sys.version_info[0] >= 3: |
158 packedData = packedData.decode('utf-8') |
158 packedData = packedData.decode('utf-8') |
159 |
159 |
160 fx, fn, data = json.loads(packedData) |
160 fx, fn, data = json.loads(packedData) |
161 if fx == 'INIT': |
161 if fx == 'INIT': |
162 ret = self.__initClientService(fn, *data) |
162 ret = self.__initClientService(fn, *data) |