1 martin 1.8 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.9 //
|
3 martin 1.8 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
|
9 martin 1.9 //
|
10 martin 1.8 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
|
16 martin 1.9 //
|
17 martin 1.8 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.9 //
|
20 martin 1.8 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.9 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.8 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.9 //
|
28 martin 1.8 //////////////////////////////////////////////////////////////////////////
|
29 kumpf 1.1 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32
33 #include <Pegasus/Common/OperationContext.h>
|
34 thilo.boehm 1.11 #include <Pegasus/Client/CIMClientRep.h>
|
35 kumpf 1.1
36 #include "CIMOMHandleRep.h"
37
38 PEGASUS_NAMESPACE_BEGIN
39
40 /**
41 ClientCIMOMHandleRep is a CIMOMHandle implementation that communicates
42 with the CIM Server through the use of a CIMClient object. This
43 implementation is intended for use with Out-of-Process Providers, for
44 which communication with the CIM Server must be serialized over an
45 interprocess connection.
46 */
47 class ClientCIMOMHandleRep : public CIMOMHandleRep
48 {
49 public:
50 ClientCIMOMHandleRep();
51 virtual ~ClientCIMOMHandleRep();
52
53 virtual CIMClass getClass(
54 const OperationContext & context,
55 const CIMNamespaceName& nameSpace,
56 kumpf 1.1 const CIMName& className,
57 Boolean localOnly,
58 Boolean includeQualifiers,
59 Boolean includeClassOrigin,
60 const CIMPropertyList& propertyList);
61
62 virtual Array<CIMClass> enumerateClasses(
63 const OperationContext & context,
64 const CIMNamespaceName& nameSpace,
65 const CIMName& className,
66 Boolean deepInheritance,
67 Boolean localOnly,
68 Boolean includeQualifiers,
69 Boolean includeClassOrigin);
70
71 virtual Array<CIMName> enumerateClassNames(
72 const OperationContext & context,
73 const CIMNamespaceName& nameSpace,
74 const CIMName& className,
75 Boolean deepInheritance);
76
77 kumpf 1.1 virtual void createClass(
78 const OperationContext & context,
79 const CIMNamespaceName& nameSpace,
80 const CIMClass& newClass);
81
82 virtual void modifyClass(
83 const OperationContext & context,
84 const CIMNamespaceName& nameSpace,
85 const CIMClass& modifiedClass);
86
87 virtual void deleteClass(
88 const OperationContext & context,
89 const CIMNamespaceName& nameSpace,
90 const CIMName& className);
91
|
92 thilo.boehm 1.11 virtual CIMResponseData getInstance(
|
93 kumpf 1.1 const OperationContext & context,
94 const CIMNamespaceName& nameSpace,
95 const CIMObjectPath& instanceName,
96 Boolean includeQualifiers,
97 Boolean includeClassOrigin,
98 const CIMPropertyList& propertyList);
99
|
100 thilo.boehm 1.11 virtual CIMResponseData enumerateInstances(
|
101 kumpf 1.1 const OperationContext & context,
102 const CIMNamespaceName& nameSpace,
103 const CIMName& className,
104 Boolean deepInheritance,
105 Boolean includeQualifiers,
106 Boolean includeClassOrigin,
107 const CIMPropertyList& propertyList);
108
|
109 thilo.boehm 1.11 virtual CIMResponseData enumerateInstanceNames(
|
110 kumpf 1.1 const OperationContext & context,
111 const CIMNamespaceName& nameSpace,
112 const CIMName& className);
113
114 virtual CIMObjectPath createInstance(
115 const OperationContext & context,
116 const CIMNamespaceName& nameSpace,
117 const CIMInstance& newInstance);
118
119 virtual void modifyInstance(
120 const OperationContext & context,
121 const CIMNamespaceName& nameSpace,
122 const CIMInstance& modifiedInstance,
123 Boolean includeQualifiers,
124 const CIMPropertyList& propertyList);
125
126 virtual void deleteInstance(
127 const OperationContext & context,
128 const CIMNamespaceName& nameSpace,
129 const CIMObjectPath& instanceName);
130
|
131 thilo.boehm 1.11 virtual CIMResponseData execQuery(
|
132 kumpf 1.1 const OperationContext & context,
133 const CIMNamespaceName& nameSpace,
134 const String& queryLanguage,
135 const String& query);
136
|
137 thilo.boehm 1.11 virtual CIMResponseData associators(
|
138 kumpf 1.1 const OperationContext & context,
139 const CIMNamespaceName& nameSpace,
140 const CIMObjectPath& objectName,
141 const CIMName& assocClass,
142 const CIMName& resultClass,
143 const String& role,
144 const String& resultRole,
145 Boolean includeQualifiers,
146 Boolean includeClassOrigin,
147 const CIMPropertyList& propertyList);
148
|
149 thilo.boehm 1.11 virtual CIMResponseData associatorNames(
|
150 kumpf 1.1 const OperationContext & context,
151 const CIMNamespaceName& nameSpace,
152 const CIMObjectPath& objectName,
153 const CIMName& assocClass,
154 const CIMName& resultClass,
155 const String& role,
156 const String& resultRole);
157
|
158 thilo.boehm 1.11 virtual CIMResponseData references(
|
159 kumpf 1.1 const OperationContext & context,
160 const CIMNamespaceName& nameSpace,
161 const CIMObjectPath& objectName,
162 const CIMName& resultClass,
163 const String& role,
164 Boolean includeQualifiers,
165 Boolean includeClassOrigin,
166 const CIMPropertyList& propertyList);
167
|
168 thilo.boehm 1.11 virtual CIMResponseData referenceNames(
|
169 kumpf 1.1 const OperationContext & context,
170 const CIMNamespaceName& nameSpace,
171 const CIMObjectPath& objectName,
172 const CIMName& resultClass,
173 const String& role);
174
175 // property operations
176 virtual CIMValue getProperty(
177 const OperationContext & context,
178 const CIMNamespaceName& nameSpace,
179 const CIMObjectPath& instanceName,
180 const CIMName& propertyName);
181
182 virtual void setProperty(
183 const OperationContext & context,
184 const CIMNamespaceName& nameSpace,
185 const CIMObjectPath& instanceName,
186 const CIMName& propertyName,
187 const CIMValue& newValue);
188
189 virtual CIMValue invokeMethod(
190 kumpf 1.1 const OperationContext & context,
191 const CIMNamespaceName& nameSpace,
192 const CIMObjectPath& instanceName,
193 const CIMName& methodName,
194 const Array<CIMParamValue>& inParameters,
195 Array<CIMParamValue>& outParameters);
196
197 virtual OperationContext getResponseContext();
198
199 private:
200 // Unimplemented
201 ClientCIMOMHandleRep(const ClientCIMOMHandleRep& rep);
202 // Unimplemented
203 ClientCIMOMHandleRep& operator=(const ClientCIMOMHandleRep &);
204
|
205 thilo.boehm 1.11 CIMClientRep* _client;
|
206 kumpf 1.1 Mutex _clientMutex;
207 };
208
209 PEGASUS_NAMESPACE_END
|