internal NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER CreateNativeHeaderBytes(byte[] bytes)
        {
            if (bytes == null)
            {
                var emptyNativebuffer = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER();
                emptyNativebuffer.BufferSize = 0;
                emptyNativebuffer.Buffer     = IntPtr.Zero;
                return(emptyNativebuffer);
            }
            var nativeObj = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER();

            nativeObj.BufferSize = (uint)bytes.Length;
            nativeObj.Buffer     = this.pin.AddBlittable(bytes);
            return(nativeObj);
        }
 internal IntPtr CreateNativeBodyBytesPtr()
 {
     if (this.message.GetBody() == null || !this.message.GetBody().GetBodyBuffers().Any())
     {
         var messageBuffer = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER();
         messageBuffer.BufferSize = 0;
         messageBuffer.Buffer     = IntPtr.Zero;
         this.length = 0;
         return(this.pin.AddBlittable(messageBuffer));
     }
     else
     {
         var nativeBuffer = this.CreateNativeBodyBytes();
         return(this.pin.AddBlittable(nativeBuffer));
     }
 }
        internal NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER[] CreateNativeBodyBytes()
        {
            var bodyBuffer = this.message.GetBody().GetBodyBuffers();

            this.length = bodyBuffer.Count();
            var bufferarray = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER[this.length];
            int i           = 0;

            foreach (var item in bodyBuffer)
            {
                bufferarray[i].BufferSize = (uint)item.Count;
                var bufferAddress = this.pin.AddBlittable(item.Array);
                bufferarray[i].Buffer = IntPtr.Add(bufferAddress, sizeof(byte) * item.Offset);
                i++;
            }

            return(bufferarray);
        }
        internal NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER CreateNativeHeaderBytes()
        {
            if (this.message.GetHeader() == null || this.message.GetHeader().GetSendBuffer() == null)
            {
                var emptyNativebuffer = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER();
                emptyNativebuffer.BufferSize = 0;
                emptyNativebuffer.Buffer     = IntPtr.Zero;
                return(emptyNativebuffer);
            }
            var nativeObj = new NativeFabricTransport.FABRIC_TRANSPORT_MESSAGE_BUFFER();
            var headers   = this.message.GetHeader().GetSendBuffer();

            nativeObj.BufferSize = (uint)headers.Count;
            var bufferAddress = this.pin.AddBlittable(headers.Array);

            nativeObj.Buffer = IntPtr.Add(bufferAddress, sizeof(byte) * headers.Offset);

            return(nativeObj);
        }