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

  1 karl  1.4 //%2005////////////////////////////////////////////////////////////////////////
  2 schuur 1.1 //
  3 karl   1.2 // 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 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl   1.2 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 karl   1.4 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 schuur 1.1 //
 12            // Permission is hereby granted, free of charge, to any person obtaining a copy
 13            // of this software and associated documentation files (the "Software"), to
 14            // deal in the Software without restriction, including without limitation the
 15            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 16            // sell copies of the Software, and to permit persons to whom the Software is
 17            // furnished to do so, subject to the following conditions:
 18 karl   1.2 // 
 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;
233 marek  1.3   void * handle;
234 schuur 1.1 };
235            
236            
237            
238            provider_comm * load_provider_comm ( const char * comm_id,
239            				     CMPIBroker * broker,
240            				     CMPIContext * ctx );
241            
242 marek  1.3 void unload_provider_comms ( void );
243            
244 schuur 1.1 
245            unsigned long int save_context ( CMPIContext * ctx );
246            CMPIContext * get_context ( unsigned long int id );
247            void remove_context ( unsigned long int id );
248            
249            #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2