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

  1 chip  1.1 //%////-*-c++-*-////////////////////////////////////////////////////////////////
  2           //
  3           // Copyright (c) 2000 - 2003 BMC Software, Hewlett-Packard Company, IBM,
  4           // The Open Group, Tivoli Systems
  5           //
  6           // Permission is hereby granted, free of charge, to any person obtaining a copy
  7           // of this software and associated documentation files (the "Software"), to
  8           // deal in the Software without restriction, including without limitation the
  9           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 10           // sell copies of the Software, and to permit persons to whom the Software is
 11           // furnished to do so, subject to the following conditions:
 12           //
 13           // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 14           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 15           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 16           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 17           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 18           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 19           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 20           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 21           //
 22 chip  1.1 //==============================================================================
 23           //
 24           // Author: Chip Vincent (cvincent@us.ibm.com)
 25           //
 26           // Modified By:
 27           //              Nag Boranna, Hewlett-Packard Company(nagaraja_boranna@hp.com)
 28           //              Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com)
 29           //              Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
 30           //              Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 31           //              Carol Ann Krug Graves, Hewlett-Packard Company
 32           //                (carolann_graves@hp.com)
 33           //              Mike Day, IBM (mdday@us.ibm.com)
 34           //
 35           //%/////////////////////////////////////////////////////////////////////////////
 36           
 37           #ifndef Pegasus_DefaultProviderManager_h
 38           #define Pegasus_DefaultProviderManager_h
 39           
 40           #include <Pegasus/Common/Config.h>
 41           #include <Pegasus/Common/Constants.h>
 42           #include <Pegasus/Common/CIMObjectPath.h>
 43 chip  1.1 #include <Pegasus/Common/Pair.h>
 44           #include <Pegasus/Common/Triad.h>
 45           #include <Pegasus/Common/Thread.h>
 46           #include <Pegasus/Common/HashTable.h>
 47           
 48           #include <Pegasus/ProviderManager2/ProviderManager.h>
 49           
 50           #include <Pegasus/ProviderManager2/Default/LocalProviderManager.h>
 51           #include <Pegasus/ProviderManager2/Default/OperationResponseHandler.h>
 52           #include <Pegasus/ProviderManager2/Default/Provider.h>
 53           
 54           #include <Pegasus/Server/Linkage.h>
 55           
 56           PEGASUS_NAMESPACE_BEGIN
 57           
 58           typedef HashTable<String,
 59           	EnableIndicationsResponseHandler *,
 60           	EqualFunc<String>,
 61           	HashFunc<String> > IndicationResponseTable;
 62           
 63           class PEGASUS_SERVER_LINKAGE DefaultProviderManager : public ProviderManager
 64 chip  1.1 {
 65           public:
 66               DefaultProviderManager(void);
 67               virtual ~DefaultProviderManager(void);
 68           
 69               virtual Message * processMessage(Message * request) throw();
 70           
 71           protected:
 72               Message * handleUnsupportedRequest(const Message * message) throw();
 73           
 74               Message * handleGetInstanceRequest(const Message * message) throw();
 75               Message * handleEnumerateInstancesRequest(const Message * message) throw();
 76               Message * handleEnumerateInstanceNamesRequest(const Message * message) throw();
 77               Message * handleCreateInstanceRequest(const Message * message) throw();
 78               Message * handleModifyInstanceRequest(const Message * message) throw();
 79               Message * handleDeleteInstanceRequest(const Message * message) throw();
 80           
 81               Message * handleExecuteQueryRequest(const Message * message) throw();
 82           
 83               Message * handleAssociatorsRequest(const Message * message) throw();
 84               Message * handleAssociatorNamesRequest(const Message * message) throw();
 85 chip  1.1     Message * handleReferencesRequest(const Message * message) throw();
 86               Message * handleReferenceNamesRequest(const Message * message) throw();
 87           
 88               Message * handleGetPropertyRequest(const Message * message) throw();
 89               Message * handleSetPropertyRequest(const Message * message) throw();
 90           
 91               Message * handleInvokeMethodRequest(const Message * message) throw();
 92           
 93               Message * handleCreateSubscriptionRequest(const Message * message) throw();
 94               Message * handleModifySubscriptionRequest(const Message * message) throw();
 95               Message * handleDeleteSubscriptionRequest(const Message * message) throw();
 96               Message * handleEnableIndicationsRequest(const Message * message) throw();
 97               Message * handleDisableIndicationsRequest(const Message * message) throw();
 98           
 99               Message * handleConsumeIndicationRequest(const Message * message) throw();
100           
101               Message * handleDisableModuleRequest(const Message * message) throw();
102               Message * handleEnableModuleRequest(const Message * message) throw();
103               Message * handleStopAllProvidersRequest(const Message * message) throw();
104           
105               /**
106 chip  1.1         Inserts an entry into the enabled indication providers table.
107           
108                   @param   provider              the provider instance
109                   @param   handler               pointer to the indication response handler
110               */
111               void _insertEntry(const Provider & provider, const EnableIndicationsResponseHandler *handler);
112           
113               /**
114                   Generates a String key from by combining the provider and provider
115           	    module names.
116           
117                   @param   provider              the provider instance
118           
119                   @return  the generated key
120                */
121               EnableIndicationsResponseHandler * _removeEntry(const String & key);
122           
123               String _generateKey(const Provider & provider);
124           
125           protected:
126               /**
127 chip  1.1         Table holding indication response handlers, one for each provider
128               	that has indications enabled.
129               */
130               IndicationResponseTable _responseTable;
131           
132           };
133           
134           PEGASUS_NAMESPACE_END
135           
136           #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2