static int
_testCMPIEnumeration(const CMPIContext *ctx)
{
  CMPIStatus      rc = { CMPI_RC_OK, NULL };
  CMPIEnumeration *enum_ptr = NULL;
  CMPIData        data;
  unsigned int    initCount = 0;
  CMPIObjectPath *objPath = NULL;
  CMPIArray      *arr_ptr = NULL;
  CMPICount       returnedArraySize;
  void           *eptr;
  objPath = make_ObjectPath(_broker, _Namespace, _PersonClass);
  enum_ptr = CBEnumInstances(_broker, ctx, objPath, NULL, &rc);
  if (enum_ptr == NULL) {
    return 1;
  }

  arr_ptr = CMToArray(enum_ptr, &rc);
  if (arr_ptr == NULL) {
    return 1;
  }

  returnedArraySize = CMGetArrayCount(arr_ptr, &rc);
  while (CMHasNext(enum_ptr, &rc)) {
    data = CMGetNext(enum_ptr, &rc);
    if (data.type != CMPI_instance) {
      return 1;
    }
    initCount++;
  }

  eptr = enum_ptr->hdl;
  enum_ptr->hdl = NULL;

  CMToArray(enum_ptr, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  CMGetNext(enum_ptr, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  CMHasNext(enum_ptr, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }
  enum_ptr->hdl = eptr;
  rc = CMRelease(enum_ptr);
  if (rc.rc != CMPI_RC_OK) {
    return 1;
  }

  return 0;
}
Exemple #2
0
static void TCPCOMM_enumInstanceNames(int socket, CONST CMPIBroker * broker,
                                      CONST CMPIContext * context)
{
    CMPIEnumeration *e;
    CMPIStatus rc;
    CMPIObjectPath *cop;
    cop = (__sft)->deserialize_CMPIObjectPath(socket, broker);
    e = CBEnumInstanceNames(broker, context, cop, &rc);
    (__sft)->serialize_CMPIStatus(socket, &rc);
    (__sft)->serialize_CMPIArray(socket,
                                 (e) ? CMToArray(e, NULL) : NULL);
}
Exemple #3
0
static void TCPCOMM_referenceNames(int socket, CONST CMPIBroker * broker,
                                   CONST CMPIContext * context)
{
    CMPIEnumeration *e;
    CMPIStatus rc;
    CMPIObjectPath *cop;
    char *resultClass, *role;
    cop = (__sft)->deserialize_CMPIObjectPath(socket, broker);
    resultClass = (__sft)->deserialize_string(socket, broker);
    role = (__sft)->deserialize_string(socket, broker);
    e = CBReferenceNames(broker, context, cop, resultClass, role, &rc);
    (__sft)->serialize_CMPIStatus(socket, &rc);
    (__sft)->serialize_CMPIArray(socket,
                                 (e) ? CMToArray(e, NULL) : NULL);
}
Exemple #4
0
static void TCPCOMM_enumInstances(int socket, CONST CMPIBroker * broker,
                                  CONST CMPIContext * context)
{
    CMPIEnumeration *e;
    CMPIStatus rc;
    CMPIObjectPath *cop;
    char **props;
    cop = (__sft)->deserialize_CMPIObjectPath(socket, broker);
    props = socketcomm_deserialize_props(socket, (__sft), broker);
    e = CBEnumInstances(broker, context, cop, (CONST char **)props, &rc);
    (__sft)->serialize_CMPIStatus(socket, &rc);
    (__sft)->serialize_CMPIArray(socket,
                                 (e) ? CMToArray(e, NULL) : NULL);
    free(props);
}
Exemple #5
0
static void TCPCOMM_execQuery(int socket, CONST CMPIBroker * broker,
                              CONST CMPIContext * context)
{
    CMPIEnumeration *e;
    CMPIStatus rc;
    CMPIObjectPath *cop;
    char *lang, *query;
    cop = (__sft)->deserialize_CMPIObjectPath(socket, broker);
    query = (__sft)->deserialize_string(socket, broker);
    lang = (__sft)->deserialize_string(socket, broker);
    e = CBExecQuery(broker, context, cop, query, lang, &rc);
    (__sft)->serialize_CMPIStatus(socket, &rc);
    (__sft)->serialize_CMPIArray(socket,
                                 (e) ? CMToArray(e, NULL) : NULL);
}
Exemple #6
0
static void TCPCOMM_associators(int socket, CONST CMPIBroker * broker,
                                CONST CMPIContext * context)
{
    CMPIEnumeration *e;
    CMPIStatus rc;
    CMPIObjectPath *cop;
    char *assocClass, *resultClass, *role, *resultRole, **props;
    cop = (__sft)->deserialize_CMPIObjectPath(socket, broker);
    assocClass = (__sft)->deserialize_string(socket, broker);
    resultClass = (__sft)->deserialize_string(socket, broker);
    role = (__sft)->deserialize_string(socket, broker);
    resultRole = (__sft)->deserialize_string(socket, broker);
    props = socketcomm_deserialize_props(socket, (__sft), broker);
    e = CBAssociators(broker, context, cop, assocClass, resultClass,
                      role, resultRole, (CONST char **)props, &rc);
    (__sft)->serialize_CMPIStatus(socket, &rc);
    (__sft)->serialize_CMPIArray(socket,
                                 (e) ? CMToArray(e, NULL) : NULL);
    free(props);
}