WS_CHANNEL_ENCODER struttura (webservices.h)
Struttura utilizzata per specificare un set di callback che possono trasformare il tipo di contenuto e i byte codificati di un messaggio inviato.
Sintassi
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;
Members
createContext
Contesto che verrà passato al WS_CREATE_ENCODER_CALLBACK.
createEncoderCallback
Callback WS_CREATE_ENCODER_CALLBACK che crea un'istanza di un codificatore.
encoderGetContentTypeCallback
Un callback WS_ENCODER_GET_CONTENT_TYPE_CALLBACK richiamato quando un messaggio deve essere codificato.
encoderStartCallback
Callback WS_ENCODER_START_CALLBACK richiamato per avviare la codifica di un messaggio.
encoderEncodeCallback
Callback WS_ENCODER_ENCODE_CALLBACK richiamato per codificare un messaggio.
encoderEndCallback
Callback WS_ENCODER_END_CALLBACK richiamato alla fine della codifica di un messaggio.
freeEncoderCallback
Callback WS_FREE_ENCODER_CALLBACK che libera un'istanza di un codificatore.
Commenti
Un WS_CHANNEL può voler comprimere, modificare o trasformare in caso contrario i byte codificati di un messaggio prima dell'invio. Un WS_CHANNEL_ENCODER fornisce gli hook necessari per intercettare ed eseguire queste modifiche.
Quando si crea il canale, il WS_CHANNEL_PROPERTY_ENCODER deve essere impostato con le funzioni appropriate.
La grammatica per i callback del codificatore è:
encodercalls := create encoderloop* free
encoderloop := getcontenttype
| getcontenttype encodestart
| getcontenttype encodestart (encode*)
| getcontenttype encodestart (encode*) encodeend
Il codificatore potrebbe non visualizzare la sequenza di codifica completa per un messaggio se il canale o il codificatore rileva un errore durante la scrittura del messaggio. Un codificatore deve essere preparato per gestire la transizione allo stato appropriato in base ai callback richiamati.
Quando si usa WS_TCP_CHANNEL_BINDING con WS_CHANNEL_TYPE_SESSION, il tipo di contenuto viene corretto per il canale. In questo caso, il WS_ENCODER_GET_CONTENT_TYPE_CALLBACK deve restituire esattamente lo stesso valore per il tipo di contenuto di ogni messaggio.
Al termine dell'uso dell'istanza del codificatore, il canale lo libera tramite il WS_FREE_ENCODER_CALLBACK.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Intestazione | webservices.h |