def preparePacket(self, action, *args, **kwargs): reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args: if type(arg) is LongType: stream.writeQString(str(arg)) elif type(arg) is IntType: stream.writeInt(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is StringType: stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) stream.device().seek(0) stream.writeUInt32(reply.size() - 4) return reply
def preparePacket(self, action, *args, **kwargs) : reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args : if type(arg) is LongType : stream.writeQString(str(arg)) elif type(arg) is IntType: stream.writeInt(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is StringType : stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) stream.device().seek(0) stream.writeUInt32(reply.size() - 4) return reply
def sendReply(self, action, *args, **kwargs): try: if hasattr(self, "socket"): reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args: if isinstance(arg, int): stream.writeInt(int(arg)) elif isinstance(arg, str): stream.writeQString(arg) elif isinstance(arg, list): stream.writeQString(str(arg)) #stream << action << options stream.device().seek(0) stream.writeUInt32(reply.size() - 4) self.socket.write(reply) # else : # # no socket !? # self.quit() except: self.log.exception("Something awful happened when sending reply !")
class QDataStreamWrite(unittest.TestCase): '''Test case for QDatastream write* functions''' def setUp(self): self.ba = QByteArray() self.read = QDataStream(self.ba, QIODevice.ReadOnly) self.write = QDataStream(self.ba, QIODevice.WriteOnly) def testWriteUInt8(self): '''QDataStream.writeUInt8 (accepting str of size 1)''' x = 0xFF self.write.writeUInt8(x) y = self.read.readUInt8() self.assertEqual(x, y) self.assertRaises(TypeError, self.write.writeUInt8, 'aaaaa') def testWriteInt8(self): '''QDataStream.writeInt8 (accepting str of size 1)''' x = 65 self.write.writeInt8(chr(x)) y = self.read.readInt8() self.assertEqual(x, y) self.assertRaises(TypeError, self.write.writeInt8, 'aaaaa') def testWriteUInt8Int(self): '''QDataStream.writeUInt8 (accepting integer)''' x = 0xFF self.write.writeUInt8(x) y = self.read.readUInt8() self.assertEqual(x, y) def testWriteInt8Int(self): '''QDataStream.writeInt8 (accepting integer)''' x = 65 self.write.writeInt8(x) y = self.read.readInt8() self.assertEqual(x, y) def testWriteUInt16(self): '''QDataStream.writeUInt16''' x = 0x4423 self.write.writeUInt16(x) y = int(self.read.readUInt16()) self.assertEqual(x, y) def testWriteUInt32(self): '''QDataStream.writeUInt32''' x = 0xdeadbeef self.write.writeUInt32(x) y = int(self.read.readUInt32()) self.assertEqual(x, y)
def sendReply(self, action, *args, **kwargs): try: if hasattr(self, "socket"): reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args: if type(arg) is LongType: stream.writeQString(str(arg)) if type(arg) is IntType: stream.writeInt(int(arg)) elif type(arg) is StringType: stream.writeQString(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) elif type(arg) is QFile: arg.open(QIODevice.ReadOnly) fileDatas = QByteArray(arg.readAll()) stream.writeInt32(fileDatas.size()) stream.writeRawData(fileDatas.data()) arg.close() # stream << action << options stream.device().seek(0) stream.writeUInt32(reply.size() - 4) self.socket.write(reply) # else : # # no socket !? # self.quit() except: self.log.exception("Something awful happened when sending reply !")
def sendReply(self, action, *args, **kwargs): try: if hasattr(self, "socket"): reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args: if type(arg) is LongType: stream.writeQString(str(arg)) if type(arg) is IntType: stream.writeInt(int(arg)) elif type(arg) is StringType: stream.writeQString(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) elif type(arg) is QFile: arg.open(QIODevice.ReadOnly) fileDatas = QByteArray(arg.readAll()) stream.writeInt32(fileDatas.size()) stream.writeRawData(fileDatas.data()) arg.close() #stream << action << options stream.device().seek(0) stream.writeUInt32(reply.size() - 4) self.socket.write(reply) # else : # # no socket !? # self.quit() except: self.log.exception("Something awful happened when sending reply !")
def sendReply(self, action, *args, **kwargs) : if self in self.parent.recorders : reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args : if type(arg) is LongType : stream.writeQString(str(arg)) elif type(arg) is IntType: stream.writeInt(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is StringType : stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) stream.device().seek(0) stream.writeUInt32(reply.size() - 4) if self.socket.isValid() and self.socket.state() == 3 : if self.socket.write(reply) == -1 : self.log.debug("error socket write") self.socket.abort() else : self.log.debug("send reply - incorrect socket to write") self.socket.abort()
def sendReply(self, action, *args, **kwargs): if self in self.parent.recorders: reply = QByteArray() stream = QDataStream(reply, QIODevice.WriteOnly) stream.setVersion(QDataStream.Qt_4_2) stream.writeUInt32(0) stream.writeQString(action) for arg in args: if type(arg) is LongType: stream.writeQString(str(arg)) elif type(arg) is IntType: stream.writeInt(arg) elif isinstance(arg, basestring): stream.writeQString(arg) elif type(arg) is StringType: stream.writeQString(arg) elif type(arg) is FloatType: stream.writeFloat(arg) elif type(arg) is ListType: stream.writeQString(str(arg)) stream.device().seek(0) stream.writeUInt32(reply.size() - 4) if self.socket.isValid() and self.socket.state() == 3: if self.socket.write(reply) == -1: self.log.debug("error socket write") self.socket.abort() else: self.log.debug("send reply - incorrect socket to write") self.socket.abort()