Exemple #1
0
        private void dispatch(
            IList <byte[]> headerBuffers, IList <byte[]> bodyBuffers)
        {
            Parameters header = new Parameters();

            header.Deserialize(headerBuffers);

            Parameters body = null;

            byte[] rawBody = null;

            if (deliverAsRawBinary)
            {
                // repackage all body buffers into one
                int totalRawSize = 0;
                foreach (byte[] buf in bodyBuffers)
                {
                    totalRawSize += buf.Length;
                }

                rawBody = new byte[totalRawSize];
                int pos = 0;
                foreach (byte[] buf in bodyBuffers)
                {
                    for (int i = 0; i != buf.Length; ++i)
                    {
                        rawBody[pos++] = buf[i];
                    }
                }
            }
            else
            {
                body = new Parameters();
                body.Deserialize(bodyBuffers);
            }

            incomingMessageDispatchCallback.dispatch(
                target, header, body, rawBody);
        }