Partager via


WS_CHANNEL_ENCODER structure (webservices.h)

Structure utilisée pour spécifier un ensemble de rappels pouvant transformer le type de contenu et les octets codés d’un message envoyé.

Syntaxe

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;

Membres

createContext

Contexte qui sera passé à l’WS_CREATE_ENCODER_CALLBACK.

createEncoderCallback

Rappel WS_CREATE_ENCODER_CALLBACK qui crée un instance d’un encodeur.

encoderGetContentTypeCallback

Un WS_ENCODER_GET_CONTENT_TYPE_CALLBACK rappel appelé lorsqu’un message doit être encodé.

encoderStartCallback

Un WS_ENCODER_START_CALLBACK rappel appelé pour commencer l’encodage d’un message.

encoderEncodeCallback

Un WS_ENCODER_ENCODE_CALLBACK rappel appelé pour encoder un message.

encoderEndCallback

Un WS_ENCODER_END_CALLBACK rappel appelé à à la fin de l’encodage d’un message.

freeEncoderCallback

Rappel WS_FREE_ENCODER_CALLBACK qui libère une instance d’un encodeur.

Remarques

Un WS_CHANNEL peut vouloir compresser, modifier ou transformer les octets codés d’un message avant leur envoi. Un WS_CHANNEL_ENCODER fournit les crochets nécessaires pour intercepter et effectuer ces modifications.

Lors de la création du canal, le WS_CHANNEL_PROPERTY_ENCODER doit être défini avec les fonctions appropriées.

La grammaire des rappels d’encodeur est la suivante :


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

L’encodeur peut ne pas voir la séquence d’encodage complète d’un message si le canal ou l’encodeur rencontre une erreur lors de l’écriture du message. Un encodeur doit être prêt à gérer la transition vers l’état approprié en fonction des rappels appelés.

Lorsque vous utilisez WS_TCP_CHANNEL_BINDING avec WS_CHANNEL_TYPE_SESSION, le type de contenu est fixe pour le canal. Dans ce cas, le WS_ENCODER_GET_CONTENT_TYPE_CALLBACK doit retourner exactement la même valeur pour le type de contenu de chaque message.

Lorsque le canal a terminé d’utiliser l’encodeur instance il le libère via le WS_FREE_ENCODER_CALLBACK.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête webservices.h