List of usage examples for io.netty.buffer ByteBuf writeShort
public abstract ByteBuf writeShort(int value);
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFBadPropertyCodeSerializerVer14.java
public static void writeTo(ByteBuf bb, OFBadPropertyCode e) { bb.writeShort(toWireValue(e)); }
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFBundleCtrlTypeSerializerVer14.java
public static void writeTo(ByteBuf bb, OFBundleCtrlType e) { bb.writeShort(toWireValue(e)); }
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFBundleFailedCodeSerializerVer14.java
public static void writeTo(ByteBuf bb, OFBundleFailedCode e) { bb.writeShort(toWireValue(e)); }
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFBundleFlagsSerializerVer14.java
public static void writeTo(ByteBuf bb, Set<OFBundleFlags> set) { bb.writeShort(toWireValue(set)); }
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFFlowMonitorFailedCodeSerializerVer14.java
public static void writeTo(ByteBuf bb, OFFlowMonitorFailedCode e) { bb.writeShort(toWireValue(e)); }
From source file:com.ltln.modules.openflow.core.protocol.ver14.OFPortStatsPropTypeSerializerVer14.java
public static void writeTo(ByteBuf bb, OFPortStatsPropType e) { bb.writeShort(toWireValue(e)); }
From source file:com.ltln.modules.openflow.core.types.U16.java
License:Apache License
@Override public void writeTo(ByteBuf bb) { bb.writeShort(raw); }
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); buf.writeBytes(connect.getName().getBytes()); buf.writeByte(connect.getProtocolLevel()); byte contentFlags = 0; contentFlags |= 0;//from w ww. j a v a 2s. c om 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 w w w .j av a 2 s . c om*/ 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.mobius.software.mqtt.parser.test.TestParser.java
License:Open Source License
@Test public void testPositivenext() throws MalformedMessageException { ByteBuf buf = Unpooled.buffer(114); buf.writeByte(0x82);//from w ww. j av a2 s . com buf.writeByte(0x66); buf.writeShort(10); buf.writeShort(97); buf.writeBytes(new byte[96]); buf.writeByte(1); buf.writeByte(0); assertEquals("Invalid next header length", 104, MQParser.next(buf).capacity()); assertEquals("buffer index was not reset", 0, buf.readerIndex()); }