(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 dj.gorey 1.11 //              Dan Gorey, djgorey@us.ibm.com
 38 chip     1.1  //
 39               //%/////////////////////////////////////////////////////////////////////////////
 40               
 41               #ifndef Pegasus_ProviderManagerService_h
 42               #define Pegasus_ProviderManagerService_h
 43               
 44               #include <Pegasus/Common/Config.h>
 45               #include <Pegasus/Common/Thread.h>
 46               #include <Pegasus/Common/Array.h>
 47               #include <Pegasus/Common/Pair.h>
 48               #include <Pegasus/Common/MessageQueueService.h>
 49 schuur   1.9  #include <Pegasus/Repository/CIMRepository.h>
 50 chip     1.1  
 51               #include <Pegasus/ProviderManager2/SafeQueue.h>
 52 schuur   1.10 #include <Pegasus/ProviderManager2/ProviderManager.h>
 53 chip     1.1  
 54 schuur   1.8  #include <Pegasus/ProviderManager2/Linkage.h>
 55 chip     1.1  
 56               PEGASUS_NAMESPACE_BEGIN
 57 chip     1.5  
 58               class ProviderRegistrationManager;
 59 schuur   1.6  class ProviderManager;
 60 chip     1.1  
 61 schuur   1.8  class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService
 62 chip     1.1  {
 63 schuur   1.9     friend class CMPIProviderManager;
 64 chip     1.1  public:
 65 schuur   1.6      static ProviderManagerService* providerManagerService;
 66 schuur   1.9  
 67 chip     1.1      ProviderManagerService(void);
 68 schuur   1.9      ProviderManagerService(ProviderRegistrationManager * providerRegistrationManager,
 69                                          CIMRepository * repository);
 70               
 71 chip     1.1  
 72                   virtual ~ProviderManagerService(void);
 73               
 74                   // temp
 75                   void unload_idle_providers(void);
 76               
 77               protected:
 78                   virtual Boolean messageOK(const Message * message);
 79                   virtual void handleEnqueue(void);
 80                   virtual void handleEnqueue(Message * message);
 81               
 82                   virtual void _handle_async_request(AsyncRequest * request);
 83 schuur   1.9  
 84                   static CIMRepository* _repository;
 85 dj.gorey 1.11 
 86                   ProviderName providerManagerName;
 87 chip     1.1  
 88               private:
 89                   //static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleServiceOperation(void * arg) throw();
 90               
 91                   //void handleStartService() thorw();
 92                   //void handleStopService() thorw();
 93                   //void handlePauseService() thorw();
 94                   //void handleResumeService() thorw();
 95               
 96                   static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation(void * arg) throw();
 97               
 98 schuur   1.7      ProviderManager *locateProviderManager(const Message *m, String &itf);
 99 chip     1.2      void handleCimRequest(AsyncOpNode *op, const Message * message);
100 chip     1.1  
101               private:
102                   SafeQueue<AsyncOpNode *> _incomingQueue;
103                   SafeQueue<AsyncOpNode *> _outgoingQueue;
104               
105               private:
106 chip     1.3      //Array<Pair<ProviderManager *, ProviderManagerModule> > _providerManagers;
107 chip     1.1  
108               };
109               
110               PEGASUS_NAMESPACE_END
111               
112               #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2