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

Diff for /pegasus/src/Pegasus/Listener/CIMListenerIndicationDispatcher.cpp between version 1.2 and 1.10

version 1.2, 2003/08/15 20:27:29 version 1.10, 2005/06/24 19:34:25
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2005////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 24 
Line 30 
 // //
 // Author: Dong Xiang, EMC Corporation (xiang_dong@emc.com) // Author: Dong Xiang, EMC Corporation (xiang_dong@emc.com)
 // //
 // Modified By:  // Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 119 
Line 125 
         PtrList*                _consumers;         PtrList*                _consumers;
 }; };
  
 static struct timeval create_time = {0, 1};  static struct timeval deallocateWait = {15, 0};
 static struct timeval destroy_time = {15, 0};  
 static struct timeval deadlock_time = {0, 0};  
  
  
 CIMListenerIndicationDispatcherRep::CIMListenerIndicationDispatcherRep() CIMListenerIndicationDispatcherRep::CIMListenerIndicationDispatcherRep()
 :_thread_pool(new ThreadPool(0, "ListenerIndicationDispatcher", 0, 0, :_thread_pool(new ThreadPool(0, "ListenerIndicationDispatcher", 0, 0,
         create_time, destroy_time, deadlock_time))          deallocateWait))
 ,_consumers(new PtrList()) ,_consumers(new PtrList())
 { {
  
 } }
 CIMListenerIndicationDispatcherRep::~CIMListenerIndicationDispatcherRep() CIMListenerIndicationDispatcherRep::~CIMListenerIndicationDispatcherRep()
 { {
         if(_thread_pool!=NULL)  
         {  
                  _thread_pool->kill_dead_threads();  
                  delete _thread_pool;                  delete _thread_pool;
   }  
         if(_consumers!=NULL)  
                 delete _consumers;                 delete _consumers;
 } }
  
Line 159 
Line 158 
  
         CIMInstance instance = request->indicationInstance;         CIMInstance instance = request->indicationInstance;
         String                  url = request->destinationPath;         String                  url = request->destinationPath;
         ContentLanguages contentLangs = request->contentLanguages;      ContentLanguages contentLangs =((ContentLanguageListContainer)request->operationContext.
                                                               get(ContentLanguageListContainer::NAME)).getLanguages();
  
         deliverIndication(url,instance,contentLangs);         deliverIndication(url,instance,contentLangs);
  
Line 192 
Line 192 
                                                                                      url,                                                                                      url,
                                                                                      instance,                                                                                      instance,
                                                                                      contentLangs);                                                                                      contentLangs);
                 _thread_pool->allocate_and_awaken(event,deliver_routine);                  ThreadStatus rtn = _thread_pool->allocate_and_awaken(event,deliver_routine);
   
                   if (rtn != PEGASUS_THREAD_OK)
                   {
                       Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
                                   "Not enough threads to allocate a worker to deliver the event. ");
   
                       Tracer::trace(TRC_SERVER, Tracer::LEVEL2,
                                   "Could not allocate thread to deliver event. Instead using current thread.");
                       delete event;
                       throw Exception(MessageLoaderParms("Listener.CIMListenerIndicationDispatcher.CANNOT_ALLOCATE_THREAD",
                                           "Not enough threads to allocate a worker to deliver the event."));
                   }
         }         }
 } }
 PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL CIMListenerIndicationDispatcherRep::deliver_routine(void *param) PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL CIMListenerIndicationDispatcherRep::deliver_routine(void *param)
Line 226 
Line 238 
 CIMListenerIndicationDispatcher::~CIMListenerIndicationDispatcher() CIMListenerIndicationDispatcher::~CIMListenerIndicationDispatcher()
 { {
         if(_rep!=NULL)         if(_rep!=NULL)
                 delete _rep;                  delete static_cast<CIMListenerIndicationDispatcherRep*>(_rep);
  
         _rep=NULL;         _rep=NULL;
 } }


Legend:
Removed from v.1.2  
changed lines
  Added in v.1.10

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2