cniElementNamespace

Esta función obtiene el valor del atributo espacio de nombres para el elemento de sintaxis especificado. El nombre del elemento de sintaxis se habrá establecido anteriormente utilizando cniSetElementNamespace o cpiSetElementNamespace.

Esta función se utiliza al convertir un mensaje que pertenece a un dominio preparado para espacios de nombres en una corriente de bits.

Sintaxis

CciSize cniElementNamespace(
	int*           returnCode,
	CciElement*    targetElement,
	const CciChar* value,
	CciSize        length)		

Parámetros

returnCode
Código de retorno de la función (salida). La especificación de un puntero NULL, significa que el nodo no desea gestionar errores. Si la entrada no es NULL, la salida indica que el estado de la llamada es correcto. Las excepciones emitidas durante la ejecución de esta llamada vuelven a emitirse en el siguiente nodo en sentido ascendente del flujo. Invoque cciGetLastExceptionData para obtener información detallada de la excepción.
targetElement
Especifica la dirección del objeto de elemento de sintaxis de destino (entrada).
value
Especifica la dirección de un almacenamiento intermedio en el que se copia el valor del espacio de nombres del elemento (salida). Una serie de caracteres (incluido un terminador NULL) que representa el valor de espacio de nombres se copia en este almacenamiento intermedio. El almacenamiento intermedio deberá ser una parte de la memoria asignada anteriormente por el canal de llamada.
length
Longitud, en caracteres, del almacenamiento intermedio especificado mediante el parámetro value (entrada).

Valores de retorno

  • Si la función se ejecuta correctamente, se devuelve el número de CciChars copiados en el almacenamiento intermedio.
  • Si el almacenamiento intermedio no es lo suficientemente grande para contener el valor de espacio de nombres, se devuelve el número de bytes requerido, y returnCode se establece en CCI_BUFFER_TOO_SMALL.
  • Si se produce una excepción durante la ejecución, returnCode se establece en CCI_EXCEPTION.

Ejemplo

 if (element != 0) {
    /*obtener nombre*/
    cniElementName(&rc, element, (CciChar*)&elementName, sizeof(elementName));

    /*obtener espacio de nombres*/
    elementNamespace=(CciChar*)malloc(sizeof(CciChar) * elementNamespaceLength);
    elementNamespaceLength = cniElementNamespace(&rc,
                                                 element,
                                                 elementNamespace,
                                                 elementNamespaceLength);
    
    if (rc==CCI_BUFFER_TOO_SMALL){
      free(elementNamespace);
      elementNamespace=(CciChar*)malloc(sizeof(CciChar) * elementNamespaceLength);
      elementNamespaceLength = cniElementNamespace(&rc,
                                                   element,
                                                   elementNamespace,
                                                   elementNamespaceLength);
    }
    checkRC(rc);

Conceptos relacionados
Nodos de proceso de mensajes definidos por el usuario
Nodos de salida definidos por el usuario

Tareas relacionadas
Creación de un nodo de proceso de mensajes en C

Referencia relacionada
cciGetLastExceptionData
cniElementName
Grupo cniSearchElementInNamespace
cniSetElementNamespace
cpiSetElementNamespace