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

  1 karl  1.3 //%2003////////////////////////////////////////////////////////////////////////
  2 chip  1.1 //
  3 karl  1.3 // 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 karl  1.3 // 
 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 chip  1.1 //
 37           //%/////////////////////////////////////////////////////////////////////////////
 38           
 39           #ifndef Pegasus_DefaultProviderManager_h
 40           #define Pegasus_DefaultProviderManager_h
 41           
 42           #include <Pegasus/Common/Config.h>
 43           #include <Pegasus/Common/Constants.h>
 44           #include <Pegasus/Common/CIMObjectPath.h>
 45           #include <Pegasus/Common/Pair.h>
 46           #include <Pegasus/Common/Triad.h>
 47           #include <Pegasus/Common/Thread.h>
 48           #include <Pegasus/Common/HashTable.h>
 49           
 50           #include <Pegasus/ProviderManager2/ProviderManager.h>
 51           
 52           #include <Pegasus/ProviderManager2/Default/LocalProviderManager.h>
 53           #include <Pegasus/ProviderManager2/Default/OperationResponseHandler.h>
 54           #include <Pegasus/ProviderManager2/Default/Provider.h>
 55           
 56           #include <Pegasus/Server/Linkage.h>
 57 chip  1.1 
 58           PEGASUS_NAMESPACE_BEGIN
 59           
 60           typedef HashTable<String,
 61           	EnableIndicationsResponseHandler *,
 62           	EqualFunc<String>,
 63           	HashFunc<String> > IndicationResponseTable;
 64           
 65           class PEGASUS_SERVER_LINKAGE DefaultProviderManager : public ProviderManager
 66           {
 67           public:
 68               DefaultProviderManager(void);
 69               virtual ~DefaultProviderManager(void);
 70           
 71               virtual Message * processMessage(Message * request) throw();
 72           
 73           protected:
 74               Message * handleUnsupportedRequest(const Message * message) throw();
 75           
 76               Message * handleGetInstanceRequest(const Message * message) throw();
 77               Message * handleEnumerateInstancesRequest(const Message * message) throw();
 78 chip  1.1     Message * handleEnumerateInstanceNamesRequest(const Message * message) throw();
 79               Message * handleCreateInstanceRequest(const Message * message) throw();
 80               Message * handleModifyInstanceRequest(const Message * message) throw();
 81               Message * handleDeleteInstanceRequest(const Message * message) throw();
 82           
 83               Message * handleExecuteQueryRequest(const Message * message) throw();
 84           
 85               Message * handleAssociatorsRequest(const Message * message) throw();
 86               Message * handleAssociatorNamesRequest(const Message * message) throw();
 87               Message * handleReferencesRequest(const Message * message) throw();
 88               Message * handleReferenceNamesRequest(const Message * message) throw();
 89           
 90               Message * handleGetPropertyRequest(const Message * message) throw();
 91               Message * handleSetPropertyRequest(const Message * message) throw();
 92           
 93               Message * handleInvokeMethodRequest(const Message * message) throw();
 94           
 95               Message * handleCreateSubscriptionRequest(const Message * message) throw();
 96               Message * handleModifySubscriptionRequest(const Message * message) throw();
 97               Message * handleDeleteSubscriptionRequest(const Message * message) throw();
 98               Message * handleEnableIndicationsRequest(const Message * message) throw();
 99 chip  1.1     Message * handleDisableIndicationsRequest(const Message * message) throw();
100           
101               Message * handleConsumeIndicationRequest(const Message * message) throw();
102           
103               Message * handleDisableModuleRequest(const Message * message) throw();
104               Message * handleEnableModuleRequest(const Message * message) throw();
105               Message * handleStopAllProvidersRequest(const Message * message) throw();
106           
107               /**
108                   Inserts an entry into the enabled indication providers table.
109           
110                   @param   provider              the provider instance
111                   @param   handler               pointer to the indication response handler
112               */
113               void _insertEntry(const Provider & provider, const EnableIndicationsResponseHandler *handler);
114           
115               /**
116                   Generates a String key from by combining the provider and provider
117           	    module names.
118           
119                   @param   provider              the provider instance
120 chip  1.1 
121                   @return  the generated key
122                */
123               EnableIndicationsResponseHandler * _removeEntry(const String & key);
124           
125               String _generateKey(const Provider & provider);
126           
127 chip  1.2     ProviderName _resolveProviderName(const ProviderName & providerName);
128           
129 chip  1.1 protected:
130               /**
131                   Table holding indication response handlers, one for each provider
132               	that has indications enabled.
133               */
134               IndicationResponseTable _responseTable;
135           
136           };
137           
138           PEGASUS_NAMESPACE_END
139           
140           #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2