(file) Return to CIMListener.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Listener

Diff for /pegasus/src/Pegasus/Listener/CIMListener.cpp between version 1.22 and 1.23

version 1.22, 2004/08/16 14:03:43 version 1.23, 2004/08/26 17:04:01
Line 303 
Line 303 
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
 } }
  
   Uint32 CIMListenerService::getOutstandingRequestCount()
   {
       return _acceptor->getOutstandingRequestCount();
   }
  
 CIMListenerIndicationDispatcher* CIMListenerService::getIndicationDispatcher() const CIMListenerIndicationDispatcher* CIMListenerService::getIndicationDispatcher() const
 { {
Line 325 
Line 329 
 #endif #endif
     svc->runForever();     svc->runForever();
   }   }
   
   delete svc;   delete svc;
  
   return 0;   return 0;
Line 356 
Line 361 
         Boolean removeConsumer(CIMIndicationConsumer* consumer);         Boolean removeConsumer(CIMIndicationConsumer* consumer);
  
 private: private:
     Boolean waitForPendingRequests(Uint32 shutdownTimeout);
   
         Uint32                  _portNumber;         Uint32                  _portNumber;
         SSLContext* _sslContext;         SSLContext* _sslContext;
  
Line 382 
Line 389 
     // Block incoming export requests and unbind the port     // Block incoming export requests and unbind the port
     _svc->stopClientConnection();     _svc->stopClientConnection();
  
       // Wait until pending export requests in the server are done.
       waitForPendingRequests(10);
   
     // Shutdown the CIMListenerService     // Shutdown the CIMListenerService
     _svc->shutdown();     _svc->shutdown();
   }   }
Line 466 
Line 476 
     // Block incoming export requests and unbind the port     // Block incoming export requests and unbind the port
     _svc->stopClientConnection();     _svc->stopClientConnection();
  
       // Wait until pending export requests in the server are done.
       if (!waitForPendingRequests(10))
       {
         // Pendings requests did not finish in time.
         MessageLoaderParms parms("Listener.CIMListenerRep.SHUTDOWN_TIMEOUT",
                "The CIMListener could not be stopped after $0 seconds because export requests have not finished.",
                10);
         throw Exception(parms);
       }
   
     // Shutdown the CIMListenerService     // Shutdown the CIMListenerService
     _svc->shutdown();     _svc->shutdown();
  
Line 511 
Line 531 
         return _dispatcher->removeConsumer(consumer);         return _dispatcher->removeConsumer(consumer);
 } }
  
   Boolean CIMListenerRep::waitForPendingRequests(Uint32 shutdownTimeout)
   {
     // Wait for 10 sec max
     Uint32 reqCount;
     Uint32 countDown = shutdownTimeout * 10;
     for (; countDown > 0; countDown--)
     {
       reqCount = _svc->getOutstandingRequestCount();
       if (reqCount > 0)
         pegasus_sleep(100);
       else
         return true;
     }
   
     return false;
   }
   
 ///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
 // CIMListener // CIMListener
 ///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////


Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2