public ITransportHeaders ReadHeaders()
        {
            TransportHeaders headers = new TransportHeaders();

            // read uri (and make sure that no channel specific data is present)
            String uri = ReadString();

            if (uri != "" && uri != null)
            {
                String chanuri, objuri;
                chanuri = PipeConnection.Parse(uri, out objuri);
                if (chanuri == null)
                {
                    objuri = uri;
                }
                headers[CommonTransportKeys.RequestUri] = objuri;
            }

            // read to end of headers
            ushort marker = ReadUShort();

            while (marker == HeaderMarker)
            {
                String hname  = ReadString();
                String hvalue = ReadString();

                headers[hname] = hvalue;

                marker = ReadUShort();
            }

            return(headers);
        }
示例#2
0
        internal PipeClientTransportSink(String url)
        {
            String objuri  = null;
            String chanuri = PipeConnection.Parse(url, out objuri);

            DBG.Info(null, "PipeClientTransportSink: creating pipe on uri: " + chanuri);
            //Console.WriteLine("PipeClientTransportSink {0}", chanuri);

            _pipeName           = chanuri;
            _pipeConnectionPool = PipeConnectionPoolManager.LookupPool(_pipeName);

            callback = new WaitCallback(this.ReceiveCallback);
        }
示例#3
0
 public String Parse(String url, out string uri)
 {
     return(PipeConnection.Parse(url, out uri));
 }