(file) Return to ProviderManagerService.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2

  1 karl  1.4 //%2003////////////////////////////////////////////////////////////////////////
  2 chip  1.1 //
  3 karl  1.4 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
  4           // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
  5           // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
  6           // IBM Corp.; EMC Corporation, The Open Group.
  7 chip  1.1 //
  8           // Permission is hereby granted, free of charge, to any person obtaining a copy
  9           // of this software and associated documentation files (the "Software"), to
 10           // deal in the Software without restriction, including without limitation the
 11           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 12           // sell copies of the Software, and to permit persons to whom the Software is
 13           // furnished to do so, subject to the following conditions:
 14 chip  1.5 //
 15 chip  1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 16           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 17           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 18           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 19           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 20           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 21           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 22           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23           //
 24           //==============================================================================
 25           //
 26           // Author: Chip Vincent (cvincent@us.ibm.com)
 27           //
 28           // Modified By:
 29           //              Nag Boranna, Hewlett-Packard Company(nagaraja_boranna@hp.com)
 30           //              Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com)
 31           //              Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
 32           //              Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 33           //              Carol Ann Krug Graves, Hewlett-Packard Company
 34           //                (carolann_graves@hp.com)
 35           //              Mike Day, IBM (mdday@us.ibm.com)
 36 schuur 1.6 //              Adrian Schuur, IBM (schuur@de.ibm.com)
 37 chip   1.1 //
 38            //%/////////////////////////////////////////////////////////////////////////////
 39            
 40            #ifndef Pegasus_ProviderManagerService_h
 41            #define Pegasus_ProviderManagerService_h
 42            
 43            #include <Pegasus/Common/Config.h>
 44            #include <Pegasus/Common/Thread.h>
 45            #include <Pegasus/Common/Array.h>
 46            #include <Pegasus/Common/Pair.h>
 47            #include <Pegasus/Common/MessageQueueService.h>
 48 schuur 1.9 #include <Pegasus/Repository/CIMRepository.h>
 49 chip   1.1 
 50            #include <Pegasus/ProviderManager2/SafeQueue.h>
 51 schuur 1.10 #include <Pegasus/ProviderManager2/ProviderManager.h>
 52 chip   1.1  
 53 schuur 1.8  #include <Pegasus/ProviderManager2/Linkage.h>
 54 chip   1.1  
 55             PEGASUS_NAMESPACE_BEGIN
 56 chip   1.5  
 57 schuur 1.13 #define IDLE_LIMIT 100
 58             
 59 chip   1.5  class ProviderRegistrationManager;
 60 schuur 1.6  class ProviderManager;
 61 chip   1.1  
 62 schuur 1.8  class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService
 63 chip   1.1  {
 64 schuur 1.9     friend class CMPIProviderManager;
 65 chip   1.1  public:
 66 schuur 1.6      static ProviderManagerService* providerManagerService;
 67 schuur 1.9  
 68 chip   1.1      ProviderManagerService(void);
 69 schuur 1.9      ProviderManagerService(ProviderRegistrationManager * providerRegistrationManager,
 70                                        CIMRepository * repository);
 71             
 72 chip   1.1  
 73                 virtual ~ProviderManagerService(void);
 74             
 75                 // temp
 76                 void unload_idle_providers(void);
 77             
 78             protected:
 79                 virtual Boolean messageOK(const Message * message);
 80                 virtual void handleEnqueue(void);
 81                 virtual void handleEnqueue(Message * message);
 82             
 83                 virtual void _handle_async_request(AsyncRequest * request);
 84 schuur 1.9  
 85                 static CIMRepository* _repository;
 86 chip   1.1  
 87             private:
 88                 //static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleServiceOperation(void * arg) throw();
 89             
 90                 //void handleStartService() thorw();
 91                 //void handleStopService() thorw();
 92                 //void handlePauseService() thorw();
 93                 //void handleResumeService() thorw();
 94             
 95                 static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation(void * arg) throw();
 96             
 97 schuur 1.7      ProviderManager *locateProviderManager(const Message *m, String &itf);
 98 chip   1.2      void handleCimRequest(AsyncOpNode *op, const Message * message);
 99 chip   1.1  
100             private:
101                 SafeQueue<AsyncOpNode *> _incomingQueue;
102                 SafeQueue<AsyncOpNode *> _outgoingQueue;
103             
104             private:
105 chip   1.3      //Array<Pair<ProviderManager *, ProviderManagerModule> > _providerManagers;
106 chip   1.1  
107             };
108             
109             PEGASUS_NAMESPACE_END
110             
111             #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2