@Override public String toString() { try { return new ChirpSocketMessage(message.getFrom(), message.getTo(), message) .getJson(null) .toString(2); } catch (JSONException e) { return "[Exception while encoding in toString()!]"; } }
public ChirpBinaryMessage(byte[] bytes) { DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bytes)); try { byte type = dis.readByte(); if (type != MessageType.ChirpMessage.typeValue) { throw new IllegalArgumentException("This isn't a chirp message!"); } byte from = dis.readByte(); byte to = dis.readByte(); int messageId = dis.readInt(); EnumSet<IChirpMessage.MessageFlags> flags = ChirpMessage.flagSetFromByte(dis.readByte()); String sender = dis.readUTF(); String recipient = dis.readUTF(); String messageStr = dis.readUTF(); this.message = new ChirpMessage(from, to, messageId, flags, sender, recipient, messageStr); } catch (IOException ex) { throw new RuntimeException(ex); } }
public byte[] toBytes() { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(bytes); try { dos.writeByte(MessageType.ChirpMessage.typeValue); dos.writeByte(message.getFrom()); dos.writeByte(message.getTo()); dos.writeInt(message.getMessageId()); dos.writeByte(message.getFlagByte()); dos.writeUTF(message.getSender()); dos.writeUTF(message.getRecipient()); dos.writeUTF(message.getMessage()); dos.flush(); return bytes.toByteArray(); } catch (IOException e) { throw new RuntimeException(e); } }