Compartir a través de


estructura de WS_CHANNEL_ENCODER (webservices.h)

Estructura que se usa para especificar un conjunto de devoluciones de llamada que pueden transformar el tipo de contenido y los bytes codificados de un mensaje enviado.

Sintaxis

typedef struct _WS_CHANNEL_ENCODER {
  void                                 *createContext;
  WS_CREATE_ENCODER_CALLBACK           createEncoderCallback;
  WS_ENCODER_GET_CONTENT_TYPE_CALLBACK encoderGetContentTypeCallback;
  WS_ENCODER_START_CALLBACK            encoderStartCallback;
  WS_ENCODER_ENCODE_CALLBACK           encoderEncodeCallback;
  WS_ENCODER_END_CALLBACK              encoderEndCallback;
  WS_FREE_ENCODER_CALLBACK             freeEncoderCallback;
} WS_CHANNEL_ENCODER;

Miembros

createContext

Contexto que se pasará al WS_CREATE_ENCODER_CALLBACK.

createEncoderCallback

Devolución de llamada WS_CREATE_ENCODER_CALLBACK que crea una instancia de un codificador.

encoderGetContentTypeCallback

Devolución de llamada WS_ENCODER_GET_CONTENT_TYPE_CALLBACK que se invoca cuando se va a codificar un mensaje.

encoderStartCallback

Devolución de llamada WS_ENCODER_START_CALLBACK que se invoca para iniciar la codificación de un mensaje.

encoderEncodeCallback

Una WS_ENCODER_ENCODE_CALLBACK devolución de llamada que se invoca para codificar un mensaje.

encoderEndCallback

Devolución de llamada WS_ENCODER_END_CALLBACK que se invoca al final de la codificación de un mensaje.

freeEncoderCallback

Devolución de llamada WS_FREE_ENCODER_CALLBACK que libera una instancia de un codificador.

Comentarios

Un WS_CHANNEL puede querer comprimir, modificar o transformar los bytes codificados de un mensaje antes de enviarlos. Un WS_CHANNEL_ENCODER proporciona los enlaces necesarios para interceptar y realizar estas modificaciones.

Al crear el canal, el WS_CHANNEL_PROPERTY_ENCODER debe establecerse con las funciones adecuadas.

La gramática de las devoluciones de llamada del codificador es:


encodercalls := create encoderloop* free
encoderloop  := getcontenttype
             |  getcontenttype encodestart
             |  getcontenttype encodestart (encode*)
             |  getcontenttype encodestart (encode*) encodeend

Es posible que el codificador no vea la secuencia de codificación completa de un mensaje si el canal o el codificador encuentra un error al escribir el mensaje. Un codificador debe estar preparado para controlar la transición al estado adecuado en función de las devoluciones de llamada invocadas.

Al usar WS_TCP_CHANNEL_BINDING con WS_CHANNEL_TYPE_SESSION, el tipo de contenido se fija para el canal. En este caso, el WS_ENCODER_GET_CONTENT_TYPE_CALLBACK debe devolver exactamente el mismo valor para el tipo de contenido de cada mensaje.

Cuando el canal termine de usar la instancia del codificador, la liberará a través del WS_FREE_ENCODER_CALLBACK.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado webservices.h