estrutura WS_CHANNEL_ENCODER (webservices.h)
Uma estrutura usada para especificar um conjunto de retornos de chamada que podem transformar o tipo de conteúdo e os bytes codificados de uma mensagem enviada.
Sintaxe
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;
Membros
createContext
Um contexto que será passado para o WS_CREATE_ENCODER_CALLBACK.
createEncoderCallback
Um WS_CREATE_ENCODER_CALLBACK retorno de chamada que cria uma instância de um codificador.
encoderGetContentTypeCallback
Um WS_ENCODER_GET_CONTENT_TYPE_CALLBACK retorno de chamada que é invocado quando uma mensagem deve ser codificada.
encoderStartCallback
Um WS_ENCODER_START_CALLBACK retorno de chamada que é invocado para iniciar a codificação de uma mensagem.
encoderEncodeCallback
Um WS_ENCODER_ENCODE_CALLBACK retorno de chamada que é invocado para codificar uma mensagem.
encoderEndCallback
Um WS_ENCODER_END_CALLBACK retorno de chamada que é invocado para no final da codificação de uma mensagem.
freeEncoderCallback
Um WS_FREE_ENCODER_CALLBACK retorno de chamada que libera uma instância de um codificador.
Comentários
Um WS_CHANNEL pode querer compactar, modificar ou transformar os bytes codificados de uma mensagem antes de serem enviados. Uma WS_CHANNEL_ENCODER fornece os ganchos necessários para interceptar e executar essas modificações.
Ao criar o canal, o WS_CHANNEL_PROPERTY_ENCODER deve ser definido com as funções apropriadas.
A gramática para os retornos de chamada do codificador é:
encodercalls := create encoderloop* free
encoderloop := getcontenttype
| getcontenttype encodestart
| getcontenttype encodestart (encode*)
| getcontenttype encodestart (encode*) encodeend
O codificador poderá não ver a sequência de codificação completa de uma mensagem se o canal ou o codificador encontrar um erro ao gravar a mensagem. Um codificador deve estar preparado para lidar com a transição para o estado apropriado com base nos retornos de chamada invocados.
Ao usar WS_TCP_CHANNEL_BINDING com WS_CHANNEL_TYPE_SESSION, o tipo de conteúdo é corrigido para o canal. Nesse caso, o WS_ENCODER_GET_CONTENT_TYPE_CALLBACK deve retornar exatamente o mesmo valor para o tipo de conteúdo de cada mensagem.
Quando o canal terminar de usar a instância do codificador, ele o liberará por meio do WS_FREE_ENCODER_CALLBACK.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | webservices.h |