~ubuntu-branches/ubuntu/trusty/opendrim-lmp-simpleidentitymanagement/trusty-proposed

« back to all changes in this revision

Viewing changes to OpenDRIM_AccountAssociatedCapabilities/OpenDRIM_AccountAssociatedCapabilitiesProvider.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Guillaume BOTTEX
  • Date: 2010-06-21 15:54:00 UTC
  • Revision ID: james.westby@ubuntu.com-20100621155400-myesv5hd2f3s8x9y
Tags: upstream-1.0.0
ImportĀ upstreamĀ versionĀ 1.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*################################################################################
 
2
# Linux Management Providers (LMP), Simple Identity Management provider package
 
3
# Copyright (C) 2007 Frederic Desmons, ETRI <desmons@etri.re.kr, desmons_frederic@yahoo.fr>
 
4
 
5
# This program is being developed under the "OpenDRIM" project.
 
6
# The "OpenDRIM" project web page: http://opendrim.sourceforge.net
 
7
# The "OpenDRIM" project mailing list: opendrim@googlegroups.com
 
8
 
9
# This program is free software; you can redistribute it and/or
 
10
# modify it under the terms of the GNU General Public License
 
11
# as published by the Free Software Foundation; version 2
 
12
# of the License.
 
13
 
14
# This program is distributed in the hope that it will be useful,
 
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
# GNU General Public License for more details.
 
18
 
19
# You should have received a copy of the GNU General Public License
 
20
# along with this program; if not, write to the Free Software
 
21
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
22
#################################################################################
 
23
 
 
24
#################################################################################
 
25
# To contributors, please leave your contact information in this section
 
26
# AND comment your changes in the source code.
 
27
 
28
# Modified by 2009 Khahramon NURIDDINOV, TUIT <qahramon0786@gmail.com>
 
29
# Modified by 2009 Guillaume BOTTEX, ETRI <guillaumebottex@etri.re.kr>
 
30
################################################################################*/
 
31
 
 
32
#include "cmpiOpenDRIM_AccountAssociatedCapabilities.h"
 
33
#include "OpenDRIM_AccountAssociatedCapabilitiesAccess.h"
 
34
 
 
35
static const CMPIBroker * _broker;
 
36
 
 
37
#ifdef CMPI_VER_100
 
38
#define Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderSetInstance Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderModifyInstance
 
39
#endif
 
40
 
 
41
int Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_init(const CMPIBroker* broker);
 
42
 
 
43
int Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_finalize();
 
44
 
 
45
/* ---------------------------------------------------------------------------*/
 
46
/*                      Instance Provider Interface                           */
 
47
/* ---------------------------------------------------------------------------*/
 
48
 
 
49
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderCleanup(CMPIInstanceMI * mi, const CMPIContext* ctx, CMPIBoolean terminate) {
 
50
        _E_;
 
51
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_finalize();
 
52
        CMPIStatus rc;
 
53
        CMSetStatus(&rc, (CMPIrc) errorCode);
 
54
        _L_;
 
55
        return rc;
 
56
}
 
57
 
 
58
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderEnumInstanceNames(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref) {
 
59
        _E_;
 
60
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
61
        vector<OpenDRIM_AccountAssociatedCapabilities> instances;
 
62
        string errorMessage;
 
63
        
 
64
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_retrieve(_broker, ctx, instances, NULL, errorMessage, "ein");
 
65
        if (errorCode != OK) {
 
66
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
67
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
68
                return rc;
 
69
        }
 
70
        for (size_t i=0; i < instances.size(); i++) {
 
71
                CMPIObjectPath* op = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIObjectPath(_broker, instances[i]);
 
72
                CMReturnObjectPath(rslt, op);
 
73
        }
 
74
        CMReturnDone(rslt);
 
75
        _L_;
 
76
        return rc;
 
77
}
 
78
 
 
79
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderEnumInstances(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char** properties) {
 
80
        _E_;
 
81
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
82
        vector<OpenDRIM_AccountAssociatedCapabilities> instances;
 
83
        string errorMessage;
 
84
        
 
85
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_retrieve(_broker, ctx, instances, properties, errorMessage, "ei");
 
86
        if (errorCode != OK) {
 
87
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
88
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
89
                return rc;
 
90
        }
 
91
        for (size_t i=0; i < instances.size(); i++) {
 
92
                CMPIInstance* ci = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIInstance(_broker, instances[i]);
 
93
                CMReturnInstance(rslt, ci);
 
94
        }
 
95
        CMReturnDone(rslt);
 
96
        _L_;
 
97
        return rc;
 
98
}
 
99
 
 
100
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderGetInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char** properties) {
 
101
        _E_;
 
102
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
103
        OpenDRIM_AccountAssociatedCapabilities instance;
 
104
        Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCPP(_broker, cop, instance);
 
105
        string errorMessage;
 
106
        
 
107
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_getInstance(_broker, ctx, instance, properties, errorMessage);
 
108
        if (errorCode != OK) {
 
109
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
110
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
111
                return rc;
 
112
        }
 
113
        CMPIInstance* ci = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIInstance(_broker, instance);
 
114
        CMReturnInstance(rslt, ci);
 
115
        CMReturnDone(rslt);
 
116
        _L_;
 
117
        return rc;
 
118
}
 
119
 
 
120
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderSetInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const CMPIInstance* ci, const char** properties) {
 
121
        _E_;
 
122
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
123
        OpenDRIM_AccountAssociatedCapabilities newInstance, oldInstance;
 
124
        Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCPP(_broker, ci, newInstance);
 
125
        Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCPP(_broker, cop, oldInstance);
 
126
        string errorMessage;
 
127
        
 
128
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_getInstance(_broker, ctx, oldInstance, properties, errorMessage);
 
129
        if (errorCode != OK) {
 
130
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
131
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
132
                return rc;
 
133
        }
 
134
        errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_setInstance(_broker, ctx, newInstance, oldInstance, properties, errorMessage);
 
135
        if (errorCode != OK) {
 
136
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
137
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
138
                return rc;
 
139
        }
 
140
        CMReturnDone(rslt);
 
141
        _L_;
 
142
        return rc;
 
143
}
 
144
 
 
145
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderCreateInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const CMPIInstance* ci) {
 
146
        _E_;
 
147
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
148
        OpenDRIM_AccountAssociatedCapabilities instance;
 
149
        Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCPP(_broker, ci, instance);
 
150
        string errorMessage;
 
151
        
 
152
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
 
153
        if (errorCode != NOT_FOUND) {
 
154
                if (errorCode == OK)
 
155
                        errorCode = ALREADY_EXISTS;
 
156
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
157
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
158
                return rc;
 
159
        }
 
160
        errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_createInstance(_broker, ctx, instance, errorMessage);
 
161
        if (errorCode != OK) {
 
162
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
163
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
164
                return rc;
 
165
        }
 
166
        errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
 
167
        if (errorCode != OK) {
 
168
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
169
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
170
                return rc;
 
171
        }
 
172
        CMPIObjectPath* _cop = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIObjectPath(_broker, instance);
 
173
        CMReturnObjectPath(rslt, _cop);
 
174
        CMReturnDone(rslt);
 
175
        _L_;
 
176
        return rc;
 
177
}
 
178
 
 
179
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderDeleteInstance(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop) {
 
180
        _E_;
 
181
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
182
        OpenDRIM_AccountAssociatedCapabilities instance;
 
183
        Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCPP(_broker, cop, instance);
 
184
        string errorMessage;
 
185
        
 
186
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_getInstance(_broker, ctx, instance, NULL, errorMessage);
 
187
        if (errorCode != OK) {
 
188
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
189
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
190
                return rc;
 
191
        }
 
192
        errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_deleteInstance(_broker, ctx, instance, errorMessage);
 
193
        if (errorCode != OK) {
 
194
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
195
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
196
                return rc;
 
197
        }
 
198
        CMReturnDone(rslt);
 
199
        _L_;
 
200
        return rc;
 
201
}
 
202
 
 
203
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderExecQuery(CMPIInstanceMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* ref, const char* lang, const char* query) {
 
204
        _E_;
 
205
        CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
 
206
}
 
207
 
 
208
/* ---------------------------------------------------------------------------*/
 
209
/*                   End of Instance Provider Interface                       */
 
210
/* ---------------------------------------------------------------------------*/
 
211
 
 
212
/* ---------------------------------------------------------------------------*/
 
213
/*                     Association Provider Interface                         */
 
214
/* ---------------------------------------------------------------------------*/
 
215
 
 
216
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderAssociationCleanup(CMPIAssociationMI * mi, const CMPIContext* ctx, CMPIBoolean terminate) {
 
217
        _E_;
 
218
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_finalize();
 
219
        CMPIStatus rc;
 
220
        CMSetStatus(&rc, (CMPIrc) errorCode);
 
221
        _L_;
 
222
        return rc;
 
223
}
 
224
 
 
225
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderAssociatorNames(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* resultClass, const char* role, const char* resultRole) {
 
226
        _E_;
 
227
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
228
        
 
229
        string errorMessage;
 
230
        bool leftToRight;
 
231
        vector<Instance> associatedInstances;
 
232
        Instance known;
 
233
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_associator(_broker, ctx, cop, known, assocClass, resultClass, role, resultRole, NULL, associatedInstances, leftToRight, errorMessage, "an");
 
234
        if (errorCode != OK) {
 
235
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
236
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
237
                return rc;
 
238
        }
 
239
        
 
240
        for (size_t i=0; i < associatedInstances.size(); i++)
 
241
                CMReturnObjectPath(rslt, associatedInstances[i].getObjectpath().getHdl());
 
242
        CMReturnDone(rslt);
 
243
        _L_;
 
244
        return rc;
 
245
}
 
246
 
 
247
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderAssociators(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* resultClass, const char* role, const char* resultRole, const char** properties) {
 
248
        _E_;
 
249
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
250
        
 
251
        string errorMessage;
 
252
        bool leftToRight;
 
253
        vector<Instance> associatedInstances;
 
254
        Instance known;
 
255
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_associator(_broker, ctx, cop, known, assocClass, resultClass, role, resultRole, properties, associatedInstances, leftToRight, errorMessage, "a");
 
256
        if (errorCode != OK) {
 
257
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
258
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
259
                return rc;
 
260
        }
 
261
        
 
262
        for (size_t i=0; i < associatedInstances.size(); i++)
 
263
                CMReturnInstance(rslt, associatedInstances[i].getHdl());
 
264
        CMReturnDone(rslt);
 
265
        _L_;
 
266
        return rc;
 
267
}
 
268
 
 
269
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderReferenceNames(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* role) {
 
270
        _E_;
 
271
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
272
        
 
273
        string errorMessage;
 
274
        bool leftToRight;
 
275
        vector<Instance> associatedInstances;
 
276
        Instance known;
 
277
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_associator(_broker, ctx, cop, known, assocClass, NULL, role, NULL, NULL, associatedInstances, leftToRight, errorMessage, "an");
 
278
        if (errorCode != OK) {
 
279
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
280
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
281
                return rc;
 
282
        }
 
283
        
 
284
        vector<OpenDRIM_AccountAssociatedCapabilities> associationInstances;
 
285
        if (leftToRight)
 
286
                errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_referenceCapabilitiesToManagedElement(_broker, ctx, known, associatedInstances, associationInstances, NULL, errorMessage, "rn");
 
287
        else
 
288
                errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_referenceManagedElementToCapabilities(_broker, ctx, known, associatedInstances, associationInstances, NULL, errorMessage, "rn");
 
289
        if (errorCode != OK) {
 
290
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
291
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
292
                return rc;
 
293
        }
 
294
        
 
295
        for (size_t i=0; i < associationInstances.size(); i++) {
 
296
                CMPIObjectPath* op = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIObjectPath(_broker, associationInstances[i]);
 
297
                CMReturnObjectPath(rslt, op);
 
298
        }
 
299
        _L_;
 
300
        return rc;
 
301
}
 
302
 
 
303
CMPIStatus Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProviderReferences(CMPIAssociationMI* mi, const CMPIContext* ctx, const CMPIResult* rslt, const CMPIObjectPath* cop, const char* assocClass, const char* role, const char** properties) {
 
304
        _E_;
 
305
        CMPIStatus rc = {CMPI_RC_OK, NULL};
 
306
        
 
307
        string errorMessage;
 
308
        bool leftToRight;
 
309
        vector<Instance> associatedInstances;
 
310
        Instance known;
 
311
        int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_associator(_broker, ctx, cop, known, assocClass, NULL, role, NULL, NULL, associatedInstances, leftToRight, errorMessage, "an");
 
312
        if (errorCode != OK) {
 
313
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
314
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
315
                return rc;
 
316
        }
 
317
        
 
318
        vector<OpenDRIM_AccountAssociatedCapabilities> associationInstances;
 
319
        if (leftToRight)
 
320
                errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_referenceCapabilitiesToManagedElement(_broker, ctx, known, associatedInstances, associationInstances, properties, errorMessage, "r");
 
321
        else
 
322
                errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_referenceManagedElementToCapabilities(_broker, ctx, known, associatedInstances, associationInstances, properties, errorMessage, "r");
 
323
        if (errorCode != OK) {
 
324
                errorMessage = (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
325
                CMSetStatusWithChars(_broker, &rc, (CMPIrc) errorCode, errorMessage.c_str());
 
326
                return rc;
 
327
        }
 
328
        
 
329
        for (size_t i=0; i < associationInstances.size(); i++) {
 
330
                CMPIInstance* inst = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_toCMPIInstance(_broker, associationInstances[i]);
 
331
                CMReturnInstance(rslt, inst);
 
332
        }
 
333
        _L_;
 
334
        return rc;
 
335
}
 
336
 
 
337
/* ---------------------------------------------------------------------------*/
 
338
/*                  End Of Association Provider Interface                     */
 
339
/* ---------------------------------------------------------------------------*/
 
340
 
 
341
/* ---------------------------------------------------------------------------*/
 
342
/*                              Provider Factory                              */
 
343
/* ---------------------------------------------------------------------------*/
 
344
 
 
345
int Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_init(const CMPIBroker* broker) {
 
346
        _E_;
 
347
        _broker = broker;
 
348
        static bool initialized = false;
 
349
        if (!initialized) {
 
350
                string errorMessage;
 
351
                int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_load(broker, errorMessage);
 
352
                if (errorCode != OK) {
 
353
                        errorMessage += "Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_init FAILED: " + (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
354
                        string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
 
355
                        system(cmd.c_str());
 
356
                        return -1;
 
357
                }
 
358
                initialized = true;
 
359
        }
 
360
        _L_;
 
361
        return OK;
 
362
}
 
363
 
 
364
int Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_finalize() {
 
365
        _E_;
 
366
        static bool finalized = false;
 
367
        if (!finalized) {
 
368
                string errorMessage;
 
369
                int errorCode = Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_unload(errorMessage);
 
370
                if (errorCode != OK) {
 
371
                        errorMessage += "Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_unload FAILED: " + (string) OpenDRIM_AccountAssociatedCapabilities_classnames[0] + ": " + errorMessage;
 
372
                        string cmd = "/bin/echo \"" + errorMessage + "\" >> cmpi_prov_debug.txt";
 
373
                        system(cmd.c_str());
 
374
                        return errorCode;
 
375
                }
 
376
                finalized = true;
 
377
        }
 
378
        _L_;
 
379
        return OK;
 
380
}
 
381
 
 
382
#define Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_INIT if (Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_init(_broker) < 0) return NULL
 
383
 
 
384
CMInstanceMIStub(Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProvider, Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProvider, _broker, Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_INIT);
 
385
CMAssociationMIStub(Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProvider, Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilitiesProvider, _broker, Simple_Identity_Management_OpenDRIM_AccountAssociatedCapabilities_INIT);
 
386
 
 
387
/* ---------------------------------------------------------------------------*/
 
388
/*                          End of Provider Factory                           */
 
389
/* ---------------------------------------------------------------------------*/