WS_CHANNEL_DECODER-Struktur (webservices.h)
Eine -Struktur, die verwendet wird, um eine Reihe von Rückrufen anzugeben, die den Inhaltstyp und die codierten Bytes einer empfangenen Nachricht transformieren können.
Syntax
typedef struct _WS_CHANNEL_DECODER {
void *createContext;
WS_CREATE_DECODER_CALLBACK createDecoderCallback;
WS_DECODER_GET_CONTENT_TYPE_CALLBACK decoderGetContentTypeCallback;
WS_DECODER_START_CALLBACK decoderStartCallback;
WS_DECODER_DECODE_CALLBACK decoderDecodeCallback;
WS_DECODER_END_CALLBACK decoderEndCallback;
WS_FREE_DECODER_CALLBACK freeDecoderCallback;
} WS_CHANNEL_DECODER;
Member
createContext
Ein Kontext, der an die WS_CREATE_DECODER_CALLBACK übergeben wird.
createDecoderCallback
Ein WS_CREATE_DECODER_CALLBACK Rückruf, der eine instance eines Decoders erstellt.
decoderGetContentTypeCallback
Ein WS_DECODER_GET_CONTENT_TYPE_CALLBACK Rückruf, der aufgerufen wird, um den Inhaltstyp der Nachricht abzurufen.
decoderStartCallback
Ein WS_DECODER_START_CALLBACK Rückruf, der am Anfang der Decodierung einer Nachricht aufgerufen wird.
decoderDecodeCallback
Ein WS_DECODER_DECODE_CALLBACK Rückruf, der aufgerufen wird, um eine Nachricht zu decodieren.
decoderEndCallback
Ein WS_DECODER_END_CALLBACK Rückruf, der am Ende der Decodierung einer Nachricht aufgerufen wird.
freeDecoderCallback
Ein WS_FREE_DECODER_CALLBACK Rückruf, der eine instance eines Decoders freigibt.
Hinweise
Ein WS_CHANNEL möchte die codierten Bytes einer Nachricht möglicherweise dekomprimieren, ändern oder anderweitig transformieren, sobald sie empfangen werden. Ein WS_CHANNEL_DECODER stellt die erforderlichen Hooks bereit, um diese Änderungen abzufangen und auszuführen.
Beim Erstellen des Kanals sollte die WS_CHANNEL_PROPERTY_DECODER mit den entsprechenden Funktionen festgelegt werden.
Die angegebenen Rückrufe werden gemäß der folgenden Grammatik aufgerufen:
decodercalls := create decoderloop* free
decoderloop := decodestart
| decodestart getcontenttype
| decodestart getcontenttype (decode*)
| decodestart getcontenttype (decode*) decodeend
Der Decoder wird möglicherweise nicht die vollständige Decodierungssequenz für eine Nachricht angezeigt, wenn der Kanal oder der Decoder beim Lesen der Nachricht auf einen Fehler stößt. Ein Decoder muss vorbereitet sein, um den Übergang in den entsprechenden Zustand basierend auf den aufgerufenen Rückrufen zu verarbeiten.
Wenn Sie WS_TCP_CHANNEL_BINDING mit WS_CHANNEL_TYPE_SESSION verwenden, wird der Inhaltstyp für den Kanal festgelegt. In diesem Fall muss die WS_DECODER_GET_CONTENT_TYPE_CALLBACK genau denselben Wert für den Inhaltstyp jeder Nachricht zurückgeben.
Die WS_DECODER_END_CALLBACK wird erst aufgerufen , wenn WS_DECODER_DECODE_CALLBACK 0 Bytes zurückgibt.
Wenn der Kanal mit dem Decoder instance beendet ist, wird er über die WS_FREE_DECODER_CALLBACK freigegeben.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | webservices.h |