19 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 // Author: Frank Scheffler
31 //
32 // Modified By: Adrian Schuur (schuur@de.ibm.com)
33 //
34 //%/////////////////////////////////////////////////////////////////////////////
35
36 /*!
37 \file proxy.h
38 \brief Proxy Provider header file.
39
40 schuur 1.1 \author Frank Scheffler
41 */
42
43 #ifndef _REMOTE_CMPI_PROXY_H
44 #define _REMOTE_CMPI_PROXY_H
45
46
47 typedef struct _RemoteCMPIInstanceMI RemoteCMPIInstanceMI;
48 typedef struct _RemoteCMPIAssociationMI RemoteCMPIAssociationMI;
49 typedef struct _RemoteCMPIMethodMI RemoteCMPIMethodMI;
50 typedef struct _RemoteCMPIPropertyMI RemoteCMPIPropertyMI;
51 typedef struct _RemoteCMPIIndicationMI RemoteCMPIIndicationMI;
52
53 typedef struct provider_comm provider_comm;
54
55
56 #define CMPI_VERSION 90
57
58 #include <Pegasus/Provider/CMPI/cmpimacs.h>
59 #include <Pegasus/Provider/CMPI/cmpidt.h>
60 #include <Pegasus/Provider/CMPI/cmpift.h>
61 schuur 1.1
62 #include "ticket.h"
63 #include "resolver.h"
64
65
66 typedef provider_comm * (* INIT_COMM_LAYER) ( CMPIBroker *, CMPIContext * );
67
68 #define REMOTE_CMPI_MI(name) \
69 struct _RemoteCMPI##name##MI { \
70 CMPI##name##MI ref; \
71 char * provider; \
72 CMPIBroker * broker; \
73 comm_ticket ticket; \
74 };
75
76
77 REMOTE_CMPI_MI(Instance);
78 REMOTE_CMPI_MI(Association);
79 REMOTE_CMPI_MI(Method);
80 REMOTE_CMPI_MI(Property);
81 REMOTE_CMPI_MI(Indication);
82 schuur 1.1
83
84
85
86
87 /**
88 * provides access to the communication layer for MI calls
89 */
90 struct provider_comm {
91
92 char * id;
93
94 // instance provider function pointers
95 CMPIStatus (* InstanceMI_enumInstanceNames) ( provider_address *,
96 RemoteCMPIInstanceMI *,
97 CMPIContext *,
98 CMPIResult *,
99 CMPIObjectPath * );
100 CMPIStatus (* InstanceMI_enumInstances) ( provider_address *,
101 RemoteCMPIInstanceMI *,
102 CMPIContext *,
103 schuur 1.1 CMPIResult *,
104 CMPIObjectPath *,
105 char ** );
106 CMPIStatus (* InstanceMI_getInstance) ( provider_address *,
107 RemoteCMPIInstanceMI *,
108 CMPIContext *,
109 CMPIResult *,
110 CMPIObjectPath *,
111 char ** );
112 CMPIStatus (* InstanceMI_createInstance) ( provider_address *,
113 RemoteCMPIInstanceMI *,
114 CMPIContext *,
115 CMPIResult *,
116 CMPIObjectPath *,
117 CMPIInstance * );
118 CMPIStatus (* InstanceMI_setInstance) ( provider_address *,
119 RemoteCMPIInstanceMI *,
120 CMPIContext *,
121 CMPIResult *,
122 CMPIObjectPath *,
123 CMPIInstance *,
124 schuur 1.1 char ** );
125 CMPIStatus (* InstanceMI_deleteInstance) ( provider_address *,
126 RemoteCMPIInstanceMI *,
127 CMPIContext *,
128 CMPIResult *,
129 CMPIObjectPath * );
130 CMPIStatus (* InstanceMI_execQuery) ( provider_address *,
131 RemoteCMPIInstanceMI *,
132 CMPIContext *,
133 CMPIResult *,
134 CMPIObjectPath *,
135 char *,
136 char * );
137
138 // associator provider function pointers
139 CMPIStatus (* AssociationMI_associators) ( provider_address *,
140 RemoteCMPIAssociationMI *,
141 CMPIContext *,
142 CMPIResult *,
143 CMPIObjectPath *,
144 const char *,
145 schuur 1.1 const char *,
146 const char *,
147 const char *,
148 char ** );
149 CMPIStatus (* AssociationMI_associatorNames) ( provider_address *,
150 RemoteCMPIAssociationMI *,
151 CMPIContext *,
152 CMPIResult *,
153 CMPIObjectPath *,
154 const char *,
155 const char *,
156 const char *,
157 const char * );
158 CMPIStatus (* AssociationMI_references) ( provider_address *,
159 RemoteCMPIAssociationMI *,
160 CMPIContext *,
161 CMPIResult *,
162 CMPIObjectPath *,
163 const char *,
164 const char *,
165 char ** );
166 schuur 1.1 CMPIStatus (* AssociationMI_referenceNames) ( provider_address *,
167 RemoteCMPIAssociationMI *,
168 CMPIContext *,
169 CMPIResult *,
170 CMPIObjectPath *,
171 const char *,
172 const char * );
173
174 // method provider function pointers
175 CMPIStatus (* MethodMI_invokeMethod) ( provider_address *,
176 RemoteCMPIMethodMI *,
177 CMPIContext *,
178 CMPIResult *,
179 CMPIObjectPath *,
180 const char *,
181 CMPIArgs *,
182 CMPIArgs * );
183
184 // property provider function pointers
185 CMPIStatus (* PropertyMI_setProperty) ( provider_address *,
186 RemoteCMPIPropertyMI *,
187 schuur 1.1 CMPIContext *,
188 CMPIResult *,
189 CMPIObjectPath *,
190 const char *,
191 CMPIData );
192 CMPIStatus (* PropertyMI_getProperty) ( provider_address *,
193 RemoteCMPIPropertyMI *,
194 CMPIContext *,
195 CMPIResult *,
196 CMPIObjectPath *,
197 const char * );
198
199 // indication provider function pointers
200 CMPIStatus (* IndicationMI_authorizeFilter) ( provider_address *,
201 RemoteCMPIIndicationMI *,
202 CMPIContext *,
203 CMPIResult *,
204 CMPIObjectPath *,
205 CMPISelectExp *,
206 const char *,
207 const char * );
208 schuur 1.1 CMPIStatus (* IndicationMI_mustPoll) ( provider_address *,
209 RemoteCMPIIndicationMI *,
210 CMPIContext *,
211 CMPIResult *,
212 CMPIObjectPath *,
213 CMPISelectExp *,
214 const char * );
215 CMPIStatus (* IndicationMI_activateFilter) ( provider_address *,
216 RemoteCMPIIndicationMI *,
217 CMPIContext *,
218 CMPIResult *,
219 CMPIObjectPath *,
220 CMPISelectExp *,
221 const char *,
222 CMPIBoolean );
223 CMPIStatus (* IndicationMI_deActivateFilter) ( provider_address *,
224 RemoteCMPIIndicationMI *,
225 CMPIContext *,
226 CMPIResult *,
227 CMPIObjectPath *,
228 CMPISelectExp *,
229 schuur 1.1 const char *,
230 CMPIBoolean );
231
232 struct provider_comm * next;
|