/**
         * @see igware.protobuf.ProtoChannel#writeMessage(com.google.protobuf.MessageLite)
         */
        public override void writeMessage(object message)
        {
            MemoryStream outStream = new MemoryStream(4096);

            try
            {
                ProtoBuf.Serializer.NonGeneric.SerializeWithLengthPrefix(outStream, message, ProtoBuf.PrefixStyle.Base128, 0);
            }
            catch (IOException e)
            {
                throw new protorpc.RpcLayerException(RpcStatus.Status.IO_ERROR, e.Message);
            }
            byte[] buffer = outStream.ToArray();
            if (namedPipeWrapper == null)
            {
                namedPipeWrapper = new CCDNamedPipeInterop(); // Also opens the Named Pipe.
                response         = null;                      // Reset the response in case we are reusing this ProtoChannel for multiple RPCs.
            }
            namedPipeWrapper.writeBufferToNamedPipe(buffer);
        }