Example usage for io.netty.buffer ByteBuf writeShort

List of usage examples for io.netty.buffer ByteBuf writeShort

Introduction

In this page you can find the example usage for io.netty.buffer ByteBuf writeShort.

Prototype

public abstract ByteBuf writeShort(int value);

Source Link

Document

Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.

Usage

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());
}