//메인 접속 성공 public void OnMainFrameConnect(RtfSession session, SessionManagerEvent smng_event) { if (session.IsPushSession()) { //푸쉬 접속시... if (smng_event == SessionManagerEvent.push_connected) { //메인 프레임에 접속 성공 이벤트를 알린다 ThreadSafe_OnSessionManagerEvent(this, new SessionManagerEventArgs(SessionManagerEvent.push_connected)); } } else { //로그인시 최초 접속 성공전일때... if (bLoginFinished == false) { if (smng_event == SessionManagerEvent.connected) { //최초로 접속이 성공한 순간.. bLoginFinished = true; //각 세션들을 접속 ConnectSessionsToServer(strIP, strPort); //폴링 타이머 시작 PollingTimerStart(); } if (smng_event == SessionManagerEvent.connected || smng_event == SessionManagerEvent.connect_failure) { //세션메니저의 이벤트를 메인에 통보한다. //최초 접속성공시 // 로그인시 접속성공/실패/등등... ThreadSafe_OnSessionManagerEvent(this, new SessionManagerEventArgs(smng_event)); } } else { //로그인후... 접속종료시... if (smng_event == SessionManagerEvent.disconnected) { //전체 세션 접속 종료시... bool bNotifyAllDisconnected = true; for (int i = 0; i < listSessionL.Count; i++) { RtfSession cur_session = listSessionL[i]; if (cur_session.bConnected == true) { bNotifyAllDisconnected = false; break; } } if (bNotifyAllDisconnected) { ThreadSafe_OnSessionManagerEvent(this, new SessionManagerEventArgs(smng_event)); } } } //20130130 접속이벤트 발생시 현재 대기중인 TRITEM처리 if (this._bShutDownProc == false) { //if (smng_event == SessionManagerEvent.connected || smng_event == SessionManagerEvent.connect_failure) if (smng_event == SessionManagerEvent.connected) { // 2013/10/22 세션 자동접속을 수동접속으로 변경 m_pollingTag = 0; // 폴링 카운트를 초기화 //대기큐에서 유효한 TRItem을 세션에 할당 DequeueReadyQueue(true); } } } }
public SessionManagerEventArgs(SessionManagerEvent nEvent) { this.nEvent = nEvent; }