Exemple #1
0
        public bool Receive(out Message.Base message)
        {
            uint read = 0;
            uint size = 0;

            message = null;

            if (stream != null && parent != null)
            {
                if (ReceiveData(stream, headerBuffer, headerSize))
                {
                    message = Pattern.Factory <Message.Base, byte> .CreateInstance(headerBuffer[0]);

                    size = new Converter32(headerBuffer[1], headerBuffer[2], headerBuffer[3], headerBuffer[4]);

                    Binary.Buffer buffer = parent.Serializer.GetBuffer(size);

                    if (ReceiveData(stream, buffer.Data, size))
                    {
                        read = parent.Serializer.FromBytesOverwrite(buffer, 0, message);
                    }
                }
            }

            return(message != null && read == size);
        }
Exemple #2
0
        public void Send(Message.Base message)
        {
            if (stream != null && parent != null)
            {
                Binary.Buffer buffer = parent.Serializer.GetBuffer(256);

                uint written = parent.Serializer.ToBytes(ref buffer, 0, message);

                Converter32 converter = new Converter32(written);

                stream.WriteByte(Pattern.Factory <Message.Base, byte> .Get(message.GetType()));
                stream.WriteByte(converter.Byte1);
                stream.WriteByte(converter.Byte2);
                stream.WriteByte(converter.Byte3);
                stream.WriteByte(converter.Byte4);
                stream.Write(buffer.Data, 0, (int)written);
            }
        }