예제 #1
0
        public void ClearTimeoutRequest()
        {
            Hashtable htRequest = HTRequest;

            if (htRequest == null)
            {
                return;
            }
            ArrayList Kyes = new ArrayList(htRequest.Keys);

            foreach (uint key in Kyes)
            {
                UniRequestApp papp = (UniRequestApp)htRequest[key];
                if ((object)papp == null || papp.Request == null)
                {
                    htRequest.Remove(key);
                    continue;
                }
                if ((DateTime.Now - papp.nTime).TotalSeconds > m_Config.m_Timeout * 60)//
                {
                    Logger.Trace("ClearTimeoutRequest Session=" + papp.Request.m_UniDCom.SessionID);
                    papp.Request.m_UniDCom.Close();
                    htRequest.Remove(key);
                }
            }
        }
예제 #2
0
        public UniRequest GetRequest(uint SessionID, uint StationSN)
        {
            UniRequest pRequest = null;

            if (SessionID == 0)
            {
                if (System.Web.HttpContext.Current.Session != null)
                {
                    if (System.Web.HttpContext.Current.Session["RequestSession"] != null)
                    {
                        pRequest = (UniRequest)System.Web.HttpContext.Current.Session["RequestSession"];
                    }
                    else
                    {
                        pRequest = new UniRequest();
                        System.Web.HttpContext.Current.Session["RequestSession"] = pRequest;
                    }
                    pRequest.m_UniDCom.StaSN = StationSN;
                    return(pRequest);
                }
            }

            Hashtable htRequest = HTRequest;

            if (htRequest == null)
            {
                htRequest = new Hashtable();
                HTRequest = htRequest;
            }
            UniRequestApp papp = (UniRequestApp)htRequest[SessionID];

            if (papp == null)
            {
                papp = new UniRequestApp();
                htRequest[SessionID] = papp;
            }
            pRequest = papp.Request;
            if (pRequest == null)
            {
                pRequest     = new UniRequest();
                papp.Request = pRequest;
            }
            pRequest.m_UniDCom.SessionID = SessionID;
            pRequest.m_UniDCom.StaSN     = StationSN;
            papp.nTime = DateTime.Now;

            //ClearTimeoutRequest();
            return(pRequest);
        }
예제 #3
0
        public void ReleaseRequest(uint SessionID)
        {
            Hashtable htRequest = HTRequest;

            if (htRequest == null)
            {
                return;
            }
            UniRequestApp papp = (UniRequestApp)htRequest[SessionID];

            if ((object)papp == null)
            {
                return;
            }
            if (papp.Request != null)
            {
                papp.Request.m_UniDCom.Close();
            }
            htRequest.Remove(SessionID);
        }
예제 #4
0
        void ClearRequest()
        {
            Hashtable htRequest = HTRequest;

            if (htRequest == null)
            {
                return;
            }
            ArrayList Kyes = new ArrayList(htRequest.Keys);

            foreach (uint key in Kyes)
            {
                UniRequestApp papp = (UniRequestApp)htRequest[key];
                if ((object)papp == null || papp.Request == null)
                {
                    htRequest.Remove(key);
                    continue;
                }
                Logger.Trace("ClearRequest Session=" + papp.Request.m_UniDCom.SessionID);
                papp.Request.m_UniDCom.Close();
                htRequest.Remove(key);
            }
        }