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 |