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

Diff for /pegasus/src/Pegasus/ProviderManager2/Attic/ProviderManagerService.h between version 1.3 and 1.31.2.2

version 1.3, 2003/10/16 23:07:55 version 1.31.2.2, 2006/05/23 18:23:40
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000 - 2003 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.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec 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 31 
Line 39 
 //              Carol Ann Krug Graves, Hewlett-Packard Company //              Carol Ann Krug Graves, Hewlett-Packard Company
 //                (carolann_graves@hp.com) //                (carolann_graves@hp.com)
 //              Mike Day, IBM (mdday@us.ibm.com) //              Mike Day, IBM (mdday@us.ibm.com)
   //              Adrian Schuur, IBM (schuur@de.ibm.com)
   //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 38 
Line 48 
 #define Pegasus_ProviderManagerService_h #define Pegasus_ProviderManagerService_h
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <Pegasus/Common/Thread.h>  
 #include <Pegasus/Common/Array.h>  
 #include <Pegasus/Common/Pair.h>  
 #include <Pegasus/Common/MessageQueueService.h> #include <Pegasus/Common/MessageQueueService.h>
   #include <Pegasus/Common/CIMMessage.h>
   #include <Pegasus/Common/OperationContextInternal.h>
   #include <Pegasus/Common/AutoPtr.h>
   #include <Pegasus/Repository/CIMRepository.h>
   #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
  
 #include <Pegasus/ProviderManager2/ProviderManagerModule.h>  
 #include <Pegasus/ProviderManager2/ProviderManager.h>  
 #include <Pegasus/ProviderManager2/SafeQueue.h> #include <Pegasus/ProviderManager2/SafeQueue.h>
   #include <Pegasus/ProviderManager2/ProviderManagerRouter.h>
  
 #include <Pegasus/Server/Linkage.h>  #include <Pegasus/ProviderManager2/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 class PEGASUS_SERVER_LINKAGE ProviderManagerService : public MessageQueueService  #define IDLE_LIMIT 300
   
   class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService
 { {
 public: public:
     ProviderManagerService(void);      ProviderManagerService(
     // temp          ProviderRegistrationManager* providerRegistrationManager,
     ProviderManagerService(ProviderRegistrationManager * providerRegistrationManager);          CIMRepository* repository);
   
       virtual ~ProviderManagerService();
   
       void unloadIdleProviders();
   
       static void indicationCallback(CIMProcessIndicationRequestMessage* request);
       static void responseChunkCallback(
           CIMRequestMessage* request, CIMResponseMessage* response);
   
       /**
           Callback function to be called upon detection of failure of a
           provider module.
        */
       static void providerModuleFailureCallback (const String & moduleName,
           const String & userName, Uint16);
  
     virtual ~ProviderManagerService(void);  private:
       ProviderManagerService();
     // temp  
     void unload_idle_providers(void);  
  
 protected:  
     virtual Boolean messageOK(const Message * message);     virtual Boolean messageOK(const Message * message);
     virtual void handleEnqueue(void);      virtual void handleEnqueue();
     virtual void handleEnqueue(Message * message);     virtual void handleEnqueue(Message * message);
  
     virtual void _handle_async_request(AsyncRequest * request);     virtual void _handle_async_request(AsyncRequest * request);
  
 private:      static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation(
     //static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleServiceOperation(void * arg) throw();          void* arg) ;
  
     //void handleStartService() thorw();      void handleCimRequest(AsyncOpNode* op, Message* message);
     //void handleStopService() thorw();  
     //void handlePauseService() thorw();  
     //void handleResumeService() thorw();  
  
     static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation(void * arg) throw();      Message* _processMessage(CIMRequestMessage* request);
  
     void handleCimRequest(AsyncOpNode *op, const Message * message);      static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL
           _unloadIdleProvidersHandler(void* arg) throw();
   
       void _updateProviderModuleStatus(
           CIMInstance& providerModule,
           const Array<Uint16>& removeStatus,
           const Array<Uint16>& appendStatus);
   
       static ProviderManagerService* providerManagerService;
   
       CIMRepository* _repository;
  
 private:  
     SafeQueue<AsyncOpNode *> _incomingQueue;     SafeQueue<AsyncOpNode *> _incomingQueue;
     SafeQueue<AsyncOpNode *> _outgoingQueue;     SafeQueue<AsyncOpNode *> _outgoingQueue;
  
 private:      ProviderManagerRouter* _basicProviderManagerRouter;
     //Array<Pair<ProviderManager *, ProviderManagerModule> > _providerManagers;      ProviderManagerRouter* _oopProviderManagerRouter;
   
       ProviderRegistrationManager* _providerRegistrationManager;
   
       static Uint32 _indicationServiceQueueId;
   
       /**
           Indicates the number of threads currently attempting to unload idle
           providers.  This value is used to prevent multiple threads from
           unloading idle providers at the same time.
        */
       AtomicInt _unloadIdleProvidersBusy;
   
  
 }; };
  


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.31.2.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2