00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "CmpiInstance.h"
00023 #include "CmpiObjectPath.h"
00024 #include "CmpiResult.h"
00025 #include "CmpiDateTime.h"
00026
00027 #include "CmpiBaseMI.h"
00028 #include "CmpiInstanceMI.h"
00029 #include "CmpiAssociationMI.h"
00030 #include "CmpiMethodMI.h"
00031 #include "CmpiPropertyMI.h"
00032 #include "CmpiIndicationMI.h"
00033 #include "CmpiArray.h"
00034 #include "CmpiBroker.h"
00035 #include "cmpisrv.h"
00036
00037
00038
00039
00040 CmpiProviderBase* CmpiProviderBase::base = NULL;
00041
00042
00043
00044
00045
00046
00047
00048
00049 CMPIStatus CmpiBaseMI::doDriveBaseCleanup
00050 (void* vi, CMPIContext* eCtx) {
00051 CMPIInstanceMI *mi=( CMPIInstanceMI*)vi;
00052 CmpiContext ctx(eCtx);
00053 CmpiStatus rc(CMPI_RC_OK);
00054 rc=((CmpiInstanceMI*)mi->hdl)->cleanup(ctx);
00055 delete (CmpiBaseMI*)mi->hdl;
00056 return rc.status();
00057 }
00058 CmpiStatus CmpiBaseMI::initialize(const CmpiContext& ctx) {
00059 return CmpiStatus(CMPI_RC_OK);
00060 }
00061
00062 CmpiStatus CmpiBaseMI::cleanup(CmpiContext& ctx) {
00063 return CmpiStatus(CMPI_RC_OK);
00064 }
00065
00066
00067
00068
00069
00070
00071
00072 CMPIStatus CmpiInstanceMI::driveEnumInstanceNames
00073 (CMPIInstanceMI* mi,CMPIContext* eCtx, CMPIResult* eRslt,
00074 CMPIObjectPath* eCop)
00075 {
00076 CmpiContext ctx(eCtx);
00077 CmpiResult rslt(eRslt);
00078 CmpiObjectPath cop(eCop);
00079 return ((CmpiInstanceMI*)mi->hdl)->enumInstanceNames
00080 (ctx,rslt,cop).status();
00081 }
00082
00083 CMPIStatus CmpiInstanceMI::driveEnumInstances
00084 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00085 CMPIObjectPath* eCop, char* *properties)
00086 {
00087 CmpiContext ctx(eCtx);
00088 CmpiResult rslt(eRslt);
00089 CmpiObjectPath cop(eCop);
00090 return ((CmpiInstanceMI*)mi->hdl)->enumInstances
00091 (ctx,rslt,cop,(const char**)properties).status();
00092 }
00093
00094 CMPIStatus CmpiInstanceMI::driveGetInstance
00095 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00096 CMPIObjectPath* eCop, char* *properties)
00097 {
00098 CmpiContext ctx(eCtx);
00099 CmpiResult rslt(eRslt);
00100 CmpiObjectPath cop(eCop);
00101 return ((CmpiInstanceMI*)mi->hdl)->getInstance
00102 (ctx,rslt,cop,(const char**)properties).status();
00103 }
00104
00105 CMPIStatus CmpiInstanceMI::driveCreateInstance
00106 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00107 CMPIObjectPath* eCop, CMPIInstance* eInst)
00108 {
00109 CmpiContext ctx(eCtx);
00110 CmpiResult rslt(eRslt);
00111 CmpiObjectPath cop(eCop);
00112 CmpiInstance inst(eInst);
00113 return ((CmpiInstanceMI*)mi->hdl)->createInstance
00114 (ctx,rslt,cop,inst).status();
00115 }
00116
00117 CMPIStatus CmpiInstanceMI::driveSetInstance
00118 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00119 CMPIObjectPath* eCop, CMPIInstance* eInst, char* *properties)
00120 {
00121 CmpiContext ctx(eCtx);
00122 CmpiResult rslt(eRslt);
00123 CmpiObjectPath cop(eCop);
00124 CmpiInstance inst(eInst);
00125 return ((CmpiInstanceMI*)mi->hdl)->setInstance
00126 (ctx,rslt,cop,inst,(const char**)properties).status();
00127 }
00128
00129 CMPIStatus CmpiInstanceMI::driveDeleteInstance
00130 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00131 CMPIObjectPath* eCop)
00132 {
00133 CmpiContext ctx(eCtx);
00134 CmpiResult rslt(eRslt);
00135 CmpiObjectPath cop(eCop);
00136 return ((CmpiInstanceMI*)mi->hdl)->deleteInstance
00137 (ctx,rslt,cop).status();
00138 }
00139
00140 CMPIStatus CmpiInstanceMI::driveExecQuery
00141 (CMPIInstanceMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00142 CMPIObjectPath* eCop, char* language ,char* query)
00143 {
00144 CmpiContext ctx(eCtx);
00145 CmpiResult rslt(eRslt);
00146 CmpiObjectPath cop(eCop);
00147 return ((CmpiInstanceMI*)mi->hdl)->execQuery
00148 (ctx,rslt,cop,language,query).status();
00149 }
00150
00151
00152
00153
00154
00155
00156
00157
00158 CmpiStatus CmpiInstanceMI::enumInstanceNames
00159 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop) {
00160 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00161 }
00162
00163 CmpiStatus CmpiInstanceMI::enumInstances
00164 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,
00165 const char* *properties){
00166 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00167 }
00168
00169 CmpiStatus CmpiInstanceMI::getInstance
00170 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,
00171 const char* *properties) {
00172 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00173 }
00174
00175 CmpiStatus CmpiInstanceMI::createInstance
00176 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,
00177 const CmpiInstance& inst) {
00178 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00179 }
00180
00181 CmpiStatus CmpiInstanceMI::setInstance
00182 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,
00183 const CmpiInstance& inst, const char* *properties) {
00184 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00185 }
00186
00187 CmpiStatus CmpiInstanceMI::deleteInstance
00188 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop) {
00189 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00190 }
00191
00192 CmpiStatus CmpiInstanceMI::execQuery
00193 (const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath& cop,
00194 const char* language, const char* query) {
00195 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00196 }
00197
00198
00199
00200
00201
00202
00203
00204
00205 CMPIStatus CmpiAssociationMI::driveAssociators
00206 (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00207 CMPIObjectPath* eOp, char* assocClass, char* resultClass,
00208 char* role, char* resultRole, char** properties) {
00209 CmpiContext ctx(eCtx);
00210 CmpiResult rslt(eRslt);
00211 CmpiObjectPath cop(eOp);
00212 return ((CmpiAssociationMI*)mi->hdl)->associators
00213 (ctx,rslt,cop,
00214 (const char*)assocClass,(const char*)resultClass,
00215 (const char*)role,(const char*)resultRole,(const char**)properties).status();
00216 }
00217
00218 CMPIStatus CmpiAssociationMI::driveAssociatorNames
00219 (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00220 CMPIObjectPath* eOp, char* assocClass, char* resultClass,
00221 char* role, char* resultRole) {
00222 CmpiContext ctx(eCtx);
00223 CmpiResult rslt(eRslt);
00224 CmpiObjectPath cop(eOp);
00225 return ((CmpiAssociationMI*)mi->hdl)->associatorNames
00226 (ctx,rslt,cop,
00227 (const char*)assocClass,(const char*)resultClass,
00228 (const char*)role,(const char*)resultRole).status();
00229 }
00230
00231 CMPIStatus CmpiAssociationMI::driveReferences
00232 (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00233 CMPIObjectPath* eOp, char* resultClass, char* role ,
00234 char** properties) {
00235 CmpiContext ctx(eCtx);
00236 CmpiResult rslt(eRslt);
00237 CmpiObjectPath cop(eOp);
00238 return ((CmpiAssociationMI*)mi->hdl)->references
00239 (ctx,rslt,cop,
00240 (const char*)resultClass,(const char*)role,(const char**)properties).status();
00241 }
00242
00243 CMPIStatus CmpiAssociationMI::driveReferenceNames
00244 (CMPIAssociationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00245 CMPIObjectPath* eOp, char* resultClass, char* role) {
00246 CmpiContext ctx(eCtx);
00247 CmpiResult rslt(eRslt);
00248 CmpiObjectPath cop(eOp);
00249 return ((CmpiAssociationMI*)mi->hdl)->referenceNames
00250 (ctx,rslt,cop,
00251 (const char*)resultClass,(const char*)role).status();
00252 }
00253
00254
00255
00256
00257
00258
00259
00260
00261 CmpiStatus CmpiAssociationMI::associators
00262 (const CmpiContext& ctx, CmpiResult& rslt,
00263 const CmpiObjectPath& op, const char* assocClass, const char* resultClass,
00264 const char* role, const char* resultRole, const char** properties) {
00265 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00266 }
00267
00268 CmpiStatus CmpiAssociationMI::associatorNames
00269 (const CmpiContext& ctx, CmpiResult& rslt,
00270 const CmpiObjectPath& op, const char* assocClass, const char* resultClass,
00271 const char* role, const char* resultRole) {
00272 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00273 }
00274
00275 CmpiStatus CmpiAssociationMI::references
00276 (const CmpiContext& ctx, CmpiResult& rslt,
00277 const CmpiObjectPath& op, const char* resultClass, const char* role ,
00278 const char** properties) {
00279 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00280 }
00281
00282 CmpiStatus CmpiAssociationMI::referenceNames
00283 (const CmpiContext& ctx, CmpiResult& rslt,
00284 const CmpiObjectPath& op, const char* resultClass, const char* role) {
00285 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00286 }
00287
00288
00289
00290
00291
00292
00293
00294
00295 CMPIStatus CmpiMethodMI::driveInvokeMethod
00296 (CMPIMethodMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00297 CMPIObjectPath* eCop, char* methodName,
00298 CMPIArgs* eIn, CMPIArgs* eOut)
00299 {
00300 const CmpiContext ctx(eCtx);
00301 CmpiResult rslt(eRslt);
00302 const CmpiObjectPath cop(eCop);
00303 const CmpiArgs in(eIn);
00304 CmpiArgs out(eOut);
00305 return ((CmpiMethodMI*)mi->hdl)->invokeMethod
00306 (ctx,rslt,cop,(const char*)methodName,in,out).status();
00307 }
00308
00309
00310
00311
00312
00313
00314
00315
00316 CmpiStatus CmpiMethodMI::invokeMethod
00317 (const CmpiContext& ctx, CmpiResult& rslt,
00318 const CmpiObjectPath& ref, const char* methodName,
00319 const CmpiArgs& in, CmpiArgs& out) {
00320 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00321 }
00322
00323
00324
00325
00326
00327
00328
00329
00330 CMPIStatus CmpiPropertyMI::driveSetProperty
00331 (CMPIPropertyMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00332 CMPIObjectPath* eCop, char* name, CMPIData eData) {
00333 const CmpiContext ctx(eCtx);
00334 CmpiResult rslt(eRslt);
00335 const CmpiObjectPath cop(eCop);
00336 const CmpiData data(eData);
00337 return ((CmpiPropertyMI*)mi->hdl)->setProperty
00338 (ctx,rslt,cop,(const char*)name,data).status();
00339 }
00340
00341 CMPIStatus CmpiPropertyMI::driveGetProperty
00342 (CMPIPropertyMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00343 CMPIObjectPath* eCop, char* name) {
00344 const CmpiContext ctx(eCtx);
00345 CmpiResult rslt(eRslt);
00346 const CmpiObjectPath cop(eCop);
00347 return ((CmpiPropertyMI*)mi->hdl)->getProperty
00348 (ctx,rslt,cop,(const char*)name).status();
00349 }
00350
00351
00352
00353
00354
00355
00356
00357
00358 CmpiStatus CmpiPropertyMI::setProperty
00359 (const CmpiContext& ctx, CmpiResult& rslt,
00360 const CmpiObjectPath& op, const char* name, const CmpiData& data) {
00361 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00362 }
00363
00364 CmpiStatus CmpiPropertyMI::getProperty
00365 (const CmpiContext& ctx, CmpiResult& rslt,
00366 const CmpiObjectPath& op, const char* name) {
00367 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00368 }
00369
00370
00371
00372
00373
00374
00375
00376
00377 CMPIStatus CmpiIndicationMI::driveAuthorizeFilter
00378 (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00379 CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop, char* user){
00380 const CmpiContext ctx(eCtx);
00381 CmpiResult rslt(eRslt);
00382 const CmpiObjectPath cop(eCop);
00383 const CmpiSelectExp se(eSe);
00384 return ((CmpiIndicationMI*)mi->hdl)->authorizeFilter
00385 (ctx,rslt,se,(const char*)ns,cop,(const char*)user).status();
00386 }
00387
00388 CMPIStatus CmpiIndicationMI::driveMustPoll
00389 (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00390 CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop){
00391 const CmpiContext ctx(eCtx);
00392 CmpiResult rslt(eRslt);
00393 const CmpiObjectPath cop(eCop);
00394 const CmpiSelectExp se(eSe);
00395 return ((CmpiIndicationMI*)mi->hdl)->mustPoll
00396 (ctx,rslt,se,(const char*)ns,cop).status();
00397 }
00398
00399 CMPIStatus CmpiIndicationMI::driveActivateFilter
00400 (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00401 CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop, CMPIBoolean first){
00402 const CmpiContext ctx(eCtx);
00403 CmpiResult rslt(eRslt);
00404 const CmpiObjectPath cop(eCop);
00405 const CmpiSelectExp se(eSe);
00406 return ((CmpiIndicationMI*)mi->hdl)->activateFilter
00407 (ctx,rslt,se,(const char*)ns,cop,first).status();
00408 }
00409
00410 CMPIStatus CmpiIndicationMI::driveDeActivateFilter
00411 (CMPIIndicationMI* mi, CMPIContext* eCtx, CMPIResult* eRslt,
00412 CMPISelectExp* eSe, char* ns, CMPIObjectPath* eCop, CMPIBoolean last){
00413 const CmpiContext ctx(eCtx);
00414 CmpiResult rslt(eRslt);
00415 const CmpiObjectPath cop(eCop);
00416 const CmpiSelectExp se(eSe);
00417 return ((CmpiIndicationMI*)mi->hdl)->deActivateFilter
00418 (ctx,rslt,se,(const char*)ns,cop,last).status();
00419 }
00420
00421
00422
00423
00424
00425
00426
00427
00428 CmpiStatus CmpiIndicationMI::authorizeFilter
00429 (const CmpiContext& ctx, CmpiResult& rslt,
00430 const CmpiSelectExp& se, const char* ns, const CmpiObjectPath& op, const char* user) {
00431 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00432 }
00433
00434 CmpiStatus CmpiIndicationMI::mustPoll
00435 (const CmpiContext& ctx, CmpiResult& rslt,
00436 const CmpiSelectExp& se, const char* ns, const CmpiObjectPath& op) {
00437 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00438 }
00439
00440 CmpiStatus CmpiIndicationMI::activateFilter
00441 (const CmpiContext& ctx, CmpiResult& rslt,
00442 const CmpiSelectExp& se, const char* ns, const CmpiObjectPath& op,
00443 CMPIBoolean first) {
00444 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00445 }
00446
00447 CmpiStatus CmpiIndicationMI::deActivateFilter
00448 (const CmpiContext& ctx, CmpiResult& rslt,
00449 const CmpiSelectExp& se, const char* ns, const CmpiObjectPath& op,
00450 CMPIBoolean last) {
00451 return CmpiStatus(CMPI_RC_ERR_NOT_SUPPORTED);
00452 }
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465 void *CmpiArray::makeArray(CMPIBroker *mb, CMPICount max, CMPIType type) {
00466 CMPIStatus rc;
00467 void *array=mb->eft->newArray(mb,max,type,&rc);
00468 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00469 return array;
00470 }
00471
00472 CMPICount CmpiArray::size() {
00473 CMPIStatus rc;
00474 CMPICount c=getEnc()->ft->getSize(getEnc(),&rc);
00475 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00476 return c;
00477 }
00478
00479
00480
00481
00482
00483
00484
00485
00486 void CmpiArrayIdx::operator=(const CmpiString v) {
00487 CMPIStatus rc;
00488 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_string)
00489 throw CMPI_RC_ERR_TYPE_MISMATCH;
00490 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_string);
00491 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00492 }
00493
00494 void CmpiArrayIdx::operator=(const char* v) {
00495 CMPIStatus rc;
00496 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_chars)
00497 throw CMPI_RC_ERR_TYPE_MISMATCH;
00498 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_chars);
00499 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00500 }
00501
00502 void CmpiArrayIdx::operator=(const CMPISint8 v) {
00503 CMPIStatus rc;
00504 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint8)
00505 throw CMPI_RC_ERR_TYPE_MISMATCH;
00506 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_sint8);
00507 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00508 }
00509
00510 void CmpiArrayIdx::operator=(const CMPISint16 v) {
00511 CMPIStatus rc;
00512 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint16)
00513 throw CMPI_RC_ERR_TYPE_MISMATCH;
00514 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_sint16);
00515 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00516 }
00517
00518 void CmpiArrayIdx::operator=(const CMPISint32 v) {
00519 CMPIStatus rc;
00520 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint32)
00521 throw CMPI_RC_ERR_TYPE_MISMATCH;
00522 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_sint32);
00523 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00524 }
00525
00526 void CmpiArrayIdx::operator=(const int v) {
00527 CMPIStatus rc;
00528 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint32)
00529 throw CMPI_RC_ERR_TYPE_MISMATCH;
00530 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_sint32);
00531 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00532 }
00533
00534
00535 void CmpiArrayIdx::operator=(const CMPISint64 v) {
00536 CMPIStatus rc;
00537 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint64)
00538 throw CMPI_RC_ERR_TYPE_MISMATCH;
00539 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_sint64);
00540 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00541 }
00542
00543 void CmpiArrayIdx::operator=(const CMPIUint8 v) {
00544 CMPIStatus rc;
00545 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint8)
00546 throw CMPI_RC_ERR_TYPE_MISMATCH;
00547 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_uint8);
00548 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00549 }
00550
00551 void CmpiArrayIdx::operator=(const CMPIUint16 v) {
00552 CMPIStatus rc;
00553 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint16)
00554 throw CMPI_RC_ERR_TYPE_MISMATCH;
00555 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_uint16);
00556 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00557 }
00558
00559 void CmpiArrayIdx::operator=(const CMPIUint32 v) {
00560 CMPIStatus rc;
00561 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint32)
00562 throw CMPI_RC_ERR_TYPE_MISMATCH;
00563 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_uint32);
00564 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00565 }
00566
00567 void CmpiArrayIdx::operator=(const unsigned int v) {
00568 CMPIStatus rc;
00569 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint32)
00570 throw CMPI_RC_ERR_TYPE_MISMATCH;
00571 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_uint32);
00572 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00573 }
00574
00575 void CmpiArrayIdx::operator=(const CMPIUint64 v) {
00576 CMPIStatus rc;
00577 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint64)
00578 throw CMPI_RC_ERR_TYPE_MISMATCH;
00579 rc=ar.getEnc()->ft->setElementAt(ar.getEnc(),idx,(CMPIValue*)&v,CMPI_uint64);
00580 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00581 }
00582
00583
00584 void CmpiArrayIdx::operator>>(CmpiString& v) {
00585 CMPIStatus rc;
00586 CMPIData d;
00587 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_string)
00588 throw CMPI_RC_ERR_TYPE_MISMATCH;
00589 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00590 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00591 v=CmpiString(d.value.string);
00592 }
00593
00594 void CmpiArrayIdx::operator>>(CMPISint8& v) {
00595 CMPIStatus rc;
00596 CMPIData d;
00597 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint8)
00598 throw CMPI_RC_ERR_TYPE_MISMATCH;
00599 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00600 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00601 v=d.value.sint8;
00602 }
00603
00604 void CmpiArrayIdx::operator>>(CMPISint16& v) {
00605 CMPIStatus rc;
00606 CMPIData d;
00607 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint16)
00608 throw CMPI_RC_ERR_TYPE_MISMATCH;
00609 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00610 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00611 v=d.value.sint16;
00612 }
00613
00614 void CmpiArrayIdx::operator>>(CMPISint32& v) {
00615 CMPIStatus rc;
00616 CMPIData d;
00617 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint32)
00618 throw CMPI_RC_ERR_TYPE_MISMATCH;
00619 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00620 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00621 v=d.value.sint32;
00622 }
00623
00624 void CmpiArrayIdx::operator>>(int& v) {
00625 CMPIStatus rc;
00626 CMPIData d;
00627 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint32)
00628 throw CMPI_RC_ERR_TYPE_MISMATCH;
00629 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00630 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00631 v=(int)d.value.sint32;
00632 }
00633
00634 void CmpiArrayIdx::operator>>(CMPISint64& v) {
00635 CMPIStatus rc;
00636 CMPIData d;
00637 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_sint64)
00638 throw CMPI_RC_ERR_TYPE_MISMATCH;
00639 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00640 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00641 v=(int)d.value.sint64;
00642 }
00643
00644 void CmpiArrayIdx::operator>>(CMPIUint8& v) {
00645 CMPIStatus rc;
00646 CMPIData d;
00647 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint8)
00648 throw CMPI_RC_ERR_TYPE_MISMATCH;
00649 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00650 if (rc.rc!=CMPI_RC_OK) throw rc.rc;
00651 v=d.value.uint8;
00652 }
00653
00654 void CmpiArrayIdx::operator>>(CMPIUint16& v) {
00655 CMPIStatus rc;
00656 CMPIData d;
00657 if (ar.getEnc()->ft->getSimpleType(ar.getEnc(),&rc)!=CMPI_uint16)
00658 throw CMPI_RC_ERR_TYPE_MISMATCH;
00659 d=ar.getEnc()->ft->getElementAt(ar.getEnc(),idx,&rc);
00660 if (rc.rc!=