Exemple #1
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);
        }
        private static void PipeConnectionPoolManagerCallback(Object state)
        {
            DBG.Info(null, "PipeConnectionPoolManagerCallback");
            lock (_poolInstances)
            {
                foreach (DictionaryEntry entry in _poolInstances)
                {
                    PipeConnectionPool pool = (PipeConnectionPool)entry.Value;

                    lock (pool)
                    {
                        pool.CloseStaleConnections();
                    }
                }
            }

            // Requeue timer

            timer = new Timer(timerDelegate, null, timerDueTime, 0);
        }
        //////////////////////////////////////////////////////////////

        public static PipeConnectionPool LookupPool(String key)
        {
            PipeConnectionPool pool;

            if (initialized == false)
            {
                Init();
            }

            lock (_poolInstances)
            {
                pool = (PipeConnectionPool)_poolInstances[key];

                if (pool == null)
                {
                    pool = new PipeConnectionPool(key);
                    _poolInstances[key] = pool;
                }
            }

            return(pool);
        }
        //////////////////////////////////////////////////////////////
        public static PipeConnectionPool LookupPool(String key)
        {
            PipeConnectionPool  pool;

            if (initialized == false)
                Init();

            lock(_poolInstances)
            {
                pool = (PipeConnectionPool)_poolInstances[key];

                if (pool == null)
                {
                    pool = new PipeConnectionPool(key);
                     _poolInstances[key] = pool;
                }
            }

            return pool;
        }
        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);
        }