private void writeHeader(EzyByteBuffer buffer, EzyMessageHeader header)
        {
            byte headerByte = 0;

            headerByte |= (byte)(header.isBigSize() ? 1 << 0 : 0);
            headerByte |= (byte)(header.isEncrypted() ? 1 << 1 : 0);
            headerByte |= (byte)(header.isCompressed() ? 1 << 2 : 0);
            headerByte |= (byte)(header.isText() ? 1 << 3 : 0);
            buffer.put(headerByte);
        }
        public static EzyMessage bytesToMessage(byte[] bytes)
        {
            EzyMessageHeader header = EzyMessageHeaderReader.read(bytes[0]);
            int messageSizeLength   = header.isBigSize() ? 4 : 2;
            int minSize             = 2 + messageSizeLength;

            if (bytes.Length < minSize)
            {
                return(null);
            }
            byte[] messageSizeBytes = EzyBytes.copyBytes(bytes, 1, messageSizeLength);
            int    messageSize      = EzyInts.bin2int(messageSizeBytes);
            int    allSize          = 1 + messageSizeLength + messageSize;

            if (bytes.Length != allSize)
            {
                return(null);
            }
            int contentStart = 1 + messageSizeLength;

            byte[] messageContent = EzyBytes.copyBytes(bytes, contentStart, messageSize);
            return(new EzySimpleMessage(header, messageContent, messageSize));
        }
Esempio n. 3
0
 protected int getSizeLength()
 {
     return(header.isBigSize() ? 4 : 2);
 }