public void Disconnect(Gateway gw)
        {
            lock (m_gateways)
            {
                object key = gw.PortDefinition.UniqueId;

                if (gw == m_gateways[key])
                {
                    m_gateways.Remove(key);
                }
            }
        }
        //--//
        
        internal GatewayStub( Gateway parent, GatewayProxy owner )
        {
            m_parent    = parent;
            m_owner     = owner;

            m_requests  = Hashtable.Synchronized( new Hashtable() );

            owner.SetParent( this );
        }
        public GatewayStub Connect(_DBG.PortDefinition pd, GatewayProxy gwp)
        {
            lock (m_gateways)
            {
                object key = pd.UniqueId;
                Gateway gw = null;

                if (m_gateways.ContainsKey(key))
                {
                    gw = m_gateways[key];
                }
                else
                {
                    gw = new Gateway(this, pd);

                    ((_WP.IController)gw).Start();

                    m_gateways[key] = gw;
                }

                return new GatewayStub(gw, gwp);
            }
        }