예제 #1
0
void _pmdSession::detach ()
{
    PD_LOG( PDINFO, "Session[%s] detach edu[%d]", sessionName(),
            eduID() ) ;

    _onDetach() ;
    clear() ;
    _client.detachCB() ;
    _pEDUCB->detachSession() ;
    _pEDUCB->setClientSock( NULL ) ;
    _pEDUCB = NULL ;
}
예제 #2
0
   _rtnContextLob::~_rtnContextLob()
   {
      if ( NULL != _stream && _stream->isOpened() )
      {
         pmdKRCB *krcb = pmdGetKRCB() ;
         pmdEDUMgr *eduMgr = krcb->getEDUMgr() ;
         pmdEDUCB *cb = eduMgr->getEDUByID( eduID() ) ;
         _stream->closeWithException( cb ) ;
      }

      SAFE_OSS_DELETE( _stream ) ;
   }
예제 #3
0
   _rtnContextMain::~_rtnContextMain()
   {
      pmdKRCB* pKrcb = pmdGetKRCB() ;
      SDB_RTNCB* rtnCB = pKrcb->getRTNCB() ;
      pmdEDUCB* eduCB = pKrcb->getEDUMgr()->getEDUByID( eduID() ) ;

      SUB_ORDERED_CTX_MAP::iterator orderIter = _orderedContextMap.begin() ;
      while ( orderIter != _orderedContextMap.end() )
      {
         rtnCB->contextDelete( orderIter->second->contextID(), eduCB ) ;
         SDB_OSS_DEL orderIter->second ;
         ++orderIter ;
      }
      _orderedContextMap.clear() ;

      SAFE_OSS_DELETE( _keyGen ) ;
   }