List of usage examples for io.netty.buffer ByteBuf writeBoolean
public abstract ByteBuf writeBoolean(boolean value);
From source file:com.mobius.software.android.iotbroker.mqtt.parser.MQParser.java
License:Open Source License
public static ByteBuf encode(MQMessage header) throws UnsupportedEncodingException, MalformedMessageException { int length = header.getLength(); ByteBuf buf = getBuffer(length); MessageType type = header.getType(); switch (type) { case CONNECT: Connect connect = (Connect) header; if (connect.isWillFlag() && !connect.getWill().isValid()) throw new MalformedMessageException("invalid will encoding"); buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(4);/*from w ww . java 2 s . c o m*/ buf.writeBytes(connect.getName().getBytes()); buf.writeByte(connect.getProtocolLevel()); byte contentFlags = 0; contentFlags |= 0; contentFlags |= connect.isClean() ? 0x02 : 0; contentFlags |= connect.isWillFlag() ? 0x04 : 0; contentFlags |= connect.isWillFlag() ? connect.getWill().getTopic().getQos().getValue() << 3 : 0; contentFlags |= connect.isWillFlag() ? connect.getWill().getRetain() ? 0x20 : 0 : 0; contentFlags |= connect.isUsernameFlag() ? 0x40 : 0; contentFlags |= connect.isPasswordFlag() ? 0x80 : 0; buf.writeByte(contentFlags); buf.writeShort(connect.getKeepAlive()); buf.writeShort(connect.getClientID().length()); buf.writeBytes(connect.getClientID().getBytes("UTF-8")); if (connect.isWillFlag()) { Text willTopic = connect.getWill().getTopic().getName(); if (willTopic != null) { buf.writeShort(willTopic.length()); buf.writeBytes(willTopic.toString().getBytes("UTF-8")); } byte[] willMessage = connect.getWill().getContent(); if (willMessage != null) { buf.writeShort(willMessage.length); buf.writeBytes(willMessage); } } String username = connect.getUserName(); if (username != null) { buf.writeShort(username.length()); buf.writeBytes(username.getBytes("UTF-8")); } String password = connect.getPassword(); if (password != null) { buf.writeShort(password.length()); buf.writeBytes(password.getBytes("UTF-8")); } break; case CONNACK: Connack connack = (Connack) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeBoolean(connack.isSessionPresent()); buf.writeByte(connack.getReturnCode().getNum()); break; case PUBLISH: Publish publish = (Publish) header; byte firstByte = (byte) (type.getNum() << 4); firstByte |= publish.isDup() ? 8 : 0; firstByte |= (publish.getTopic().getQos().getValue() << 1); firstByte |= publish.isRetain() ? 1 : 0; buf.setByte(0, firstByte); buf.writeShort(publish.getTopic().length()); buf.writeBytes(publish.getTopic().getName().toString().getBytes("UTF-8")); if (publish.getPacketID() != null) buf.writeShort(publish.getPacketID()); buf.writeBytes(publish.getContent()); break; case PUBACK: Puback puback = (Puback) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(puback.getPacketID()); break; case PUBREC: Pubrec pubrec = (Pubrec) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(pubrec.getPacketID()); break; case PUBREL: Pubrel pubrel = (Pubrel) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); buf.writeShort(pubrel.getPacketID()); break; case PUBCOMP: Pubcomp pubcomp = (Pubcomp) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(pubcomp.getPacketID()); break; case SUBSCRIBE: Subscribe sub = (Subscribe) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); if (sub.getPacketID() != null) buf.writeShort(sub.getPacketID()); for (Topic subscription : sub.getTopics()) { buf.writeShort(subscription.getName().length()); buf.writeBytes(subscription.getName().toString().getBytes("UTF-8")); buf.writeByte(subscription.getQos().getValue()); } break; case SUBACK: Suback suback = (Suback) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(suback.getPacketID()); for (SubackCode code : suback.getReturnCodes()) buf.writeByte(code.getNum()); break; case UNSUBSCRIBE: Unsubscribe unsub = (Unsubscribe) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); buf.writeShort(unsub.getPacketID()); for (Topic topic : unsub.getTopics()) { buf.writeShort(topic.getName().length()); buf.writeBytes(topic.getName().toString().getBytes("UTF-8")); } break; case UNSUBACK: Unsuback unsuback = (Unsuback) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(unsuback.getPacketID()); break; case DISCONNECT: case PINGREQ: case PINGRESP: buf.setByte(0, (byte) (type.getNum() << 4)); break; default: throw new MalformedMessageException("Invalid header type: " + type); } return buf; }
From source file:com.mobius.software.mqtt.parser.MQParser.java
License:Open Source License
public static ByteBuf encode(MQMessage header) throws MalformedMessageException { int length = header.getLength(); ByteBuf buf = getBuffer(length); MessageType type = header.getType(); try {/*from ww w . ja v a2s.co m*/ switch (type) { case CONNECT: Connect connect = (Connect) header; if (connect.isWillFlag() && !connect.getWill().isValid()) throw new MalformedMessageException("invalid will encoding"); buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeShort(4); buf.writeBytes(connect.getName().getBytes()); buf.writeByte(connect.getProtocolLevel()); byte contentFlags = 0; if (connect.isCleanSession()) contentFlags += 2; if (connect.isWillFlag()) { contentFlags += 4; contentFlags += connect.getWill().getTopic().getQos().getValue() << 3; if (connect.getWill().isRetain()) contentFlags += 0x20; } if (connect.isPasswordFlag()) contentFlags += 0x40; if (connect.isUsernameFlag()) contentFlags += 0x80; buf.writeByte(contentFlags); buf.writeShort(connect.getKeepalive()); buf.writeShort(connect.getClientID().length()); buf.writeBytes(connect.getClientID().getBytes("UTF-8")); if (connect.isWillFlag()) { Text willTopic = connect.getWill().getTopic().getName(); if (willTopic != null) { buf.writeShort(willTopic.length()); buf.writeBytes(willTopic.toString().getBytes("UTF-8")); } byte[] willMessage = connect.getWill().getContent(); if (willMessage != null) { buf.writeShort(willMessage.length); buf.writeBytes(willMessage); } } String username = connect.getUsername(); if (username != null) { buf.writeShort(username.length()); buf.writeBytes(username.getBytes("UTF-8")); } String password = connect.getPassword(); if (password != null) { buf.writeShort(password.length()); buf.writeBytes(password.getBytes("UTF-8")); } break; case CONNACK: Connack connack = (Connack) header; buf.setByte(0, (byte) (type.getNum() << 4)); buf.writeBoolean(connack.isSessionPresent()); buf.writeByte(connack.getReturnCode().getNum()); break; case PUBLISH: Publish publish = (Publish) header; byte firstByte = (byte) (type.getNum() << 4); firstByte |= publish.isDup() ? 8 : 0; firstByte |= (publish.getTopic().getQos().getValue() << 1); firstByte |= publish.isRetain() ? 1 : 0; buf.setByte(0, firstByte); buf.writeShort(publish.getTopic().length()); buf.writeBytes(publish.getTopic().getName().toString().getBytes("UTF-8")); switch (publish.getTopic().getQos()) { case AT_MOST_ONCE: if (publish.getPacketID() != null) throw new MalformedMessageException("publish qos-0 must not contain packetID"); break; case AT_LEAST_ONCE: case EXACTLY_ONCE: if (publish.getPacketID() == null) throw new MalformedMessageException("publish qos-1,2 must contain packetID"); buf.writeShort(publish.getPacketID()); break; } buf.writeBytes(publish.getContent()); break; case PUBACK: Puback puback = (Puback) header; buf.setByte(0, (byte) (type.getNum() << 4)); if (puback.getPacketID() == null) throw new MalformedMessageException("puback must contain packetID"); buf.writeShort(puback.getPacketID()); break; case PUBREC: Pubrec pubrec = (Pubrec) header; buf.setByte(0, (byte) (type.getNum() << 4)); if (pubrec.getPacketID() == null) throw new MalformedMessageException("pubrec must contain packetID"); buf.writeShort(pubrec.getPacketID()); break; case PUBREL: Pubrel pubrel = (Pubrel) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); if (pubrel.getPacketID() == null) throw new MalformedMessageException("pubrel must contain packetID"); buf.writeShort(pubrel.getPacketID()); break; case PUBCOMP: Pubcomp pubcomp = (Pubcomp) header; buf.setByte(0, (byte) (type.getNum() << 4)); if (pubcomp.getPacketID() == null) throw new MalformedMessageException("pubcomp must contain packetID"); buf.writeShort(pubcomp.getPacketID()); break; case SUBSCRIBE: Subscribe sub = (Subscribe) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); if (sub.getPacketID() == null) throw new MalformedMessageException("subscribe must contain packetID"); buf.writeShort(sub.getPacketID()); for (Topic subscription : sub.getTopics()) { buf.writeShort(subscription.getName().length()); buf.writeBytes(subscription.getName().toString().getBytes("UTF-8")); buf.writeByte(subscription.getQos().getValue()); } break; case SUBACK: Suback suback = (Suback) header; buf.setByte(0, (byte) (type.getNum() << 4)); if (suback.getPacketID() == null) throw new MalformedMessageException("suback must contain packetID"); buf.writeShort(suback.getPacketID()); for (SubackCode code : suback.getReturnCodes()) buf.writeByte(code.getNum()); break; case UNSUBSCRIBE: Unsubscribe unsub = (Unsubscribe) header; buf.setByte(0, (byte) ((type.getNum() << 4) | 0x2)); if (unsub.getPacketID() == null) throw new MalformedMessageException("subscribe must contain packetID"); buf.writeShort(unsub.getPacketID()); for (Text topic : unsub.getTopics()) { buf.writeShort(topic.length()); buf.writeBytes(topic.toString().getBytes("UTF-8")); } break; case UNSUBACK: Unsuback unsuback = (Unsuback) header; buf.setByte(0, (byte) (type.getNum() << 4)); if (unsuback.getPacketID() == null) throw new MalformedMessageException("unsuback must contain packetID"); buf.writeShort(unsuback.getPacketID()); break; case DISCONNECT: case PINGREQ: case PINGRESP: buf.setByte(0, (byte) (type.getNum() << 4)); break; default: throw new MalformedMessageException("Invalid header type: " + type); } return buf; } catch (UnsupportedEncodingException e) { throw new MalformedMessageException("unsupported string encoding:" + e.getMessage()); } }
From source file:com.mrcrayfish.furniture.network.message.MessageFillBasin.java
License:Open Source License
@Override public void toBytes(ByteBuf buf) { buf.writeBoolean(hasWater); buf.writeInt(x); buf.writeInt(y); buf.writeInt(z); }
From source file:com.mrcrayfish.furniture.network.message.MessageMineBayBuy.java
License:Open Source License
@Override public void toBytes(ByteBuf buf) { buf.writeInt(itemNum);/*from ww w.j a v a2s .c o m*/ buf.writeInt(x); buf.writeInt(y); buf.writeInt(z); buf.writeBoolean(shouldClear); }
From source file:com.ogarproject.ogar.server.net.packet.outbound.PacketOutUpdateNodes.java
License:Open Source License
@Override public void writeData(ByteBuf buf) { // Removals by eating int lengthIndex = buf.writerIndex(); int eaten = 0; buf.writerIndex(lengthIndex + 2);/*from w w w .j a va 2 s . com*/ for (EntityImpl entity : removals) { if (entity.getConsumer() > 0) { eaten++; buf.writeInt(entity.getConsumer()); buf.writeInt(entity.getID()); } } buf.markWriterIndex(); buf.writerIndex(lengthIndex); buf.writeShort(eaten); buf.resetWriterIndex(); // Updates for (int id : updates) { EntityImpl entity = world.getEntity(id); if (entity == null) { // TODO - Theoretically this could be ignored, but it might cause other issues, // like having nonexistent entities on the player's screen. Re-evaluate this later? throw new MalformedPacketException("Attempted to update nonexistent entity"); } buf.writeInt(entity.getID()); buf.writeInt((int) entity.getPosition().getX()); buf.writeInt((int) entity.getPosition().getY()); buf.writeShort(entity.getPhysicalSize()); buf.writeByte(entity.getColor().getRed()); buf.writeByte(entity.getColor().getGreen()); buf.writeByte(entity.getColor().getBlue()); buf.writeBoolean(entity.isSpiked()); // buf.skipBytes(18); if (entity instanceof CellImpl) { CellImpl cell = (CellImpl) entity; if (cell.getName() == null) { writeUTF16(buf, ""); } else { writeUTF16(buf, cell.getName()); } } else { writeUTF16(buf, ""); } } buf.writeInt(0); // General removals buf.writeInt(removals.size()); for (EntityImpl entity : removals) { buf.writeInt(entity.getID()); } }
From source file:com.parachute.common.AscendKeyPressMessage.java
License:Open Source License
@Override public void toBytes(ByteBuf bb) { bb.writeBoolean(keyPressed); }
From source file:com.parachute.common.KeyPressMessage.java
License:Open Source License
@Override public void toBytes(ByteBuf bb) { bb.writeInt(keyCode); bb.writeBoolean(keyPressed); }
From source file:com.seventh_root.ld33.common.network.packet.clientbound.PlayerLoginResponseClientBoundPacket.java
License:Apache License
@Override public void write(ByteBuf buf) throws UnsupportedEncodingException { super.write(buf); writeString(buf, getMessage());/*w w w .j ava 2s. co m*/ buf.writeBoolean(isSuccess()); }
From source file:com.seventh_root.ld33.common.network.packet.serverbound.PlayerLoginServerBoundPacket.java
License:Apache License
@Override public void write(ByteBuf buf) throws UnsupportedEncodingException { super.write(buf); writeString(buf, getPlayerName());// w ww . j a va2s . com buf.writeInt(getEncryptedPassword().length); buf.writeBytes(getEncryptedPassword()); buf.writeBoolean(isSignUp()); }
From source file:com.teambr.bookshelf.network.SyncableFieldPacket.java
License:Creative Commons License
@Override public void toBytes(ByteBuf buf) { buf.writeBoolean(returnValue); buf.writeInt(id);//from w w w. ja va 2 s . c o m buf.writeDouble(value); buf.writeLong(blockPosition.toLong()); }