WS_CHANNEL_DECODER 구조체(webservices.h)
수신된 메시지의 콘텐츠 형식 및 인코딩된 바이트를 변환할 수 있는 콜백 집합을 지정하는 데 사용되는 구조체입니다.
구문
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;
멤버
createContext
WS_CREATE_DECODER_CALLBACK 전달될 컨텍스트입니다.
createDecoderCallback
디코더의 instance 만드는 WS_CREATE_DECODER_CALLBACK 콜백입니다.
decoderGetContentTypeCallback
메시지의 콘텐츠 형식을 가져오기 위해 호출되는 WS_DECODER_GET_CONTENT_TYPE_CALLBACK 콜백입니다.
decoderStartCallback
메시지 디코딩을 시작할 때 호출되는 WS_DECODER_START_CALLBACK 콜백입니다.
decoderDecodeCallback
메시지를 디코딩하기 위해 호출되는 WS_DECODER_DECODE_CALLBACK 콜백입니다.
decoderEndCallback
메시지를 디코딩할 때 호출되는 WS_DECODER_END_CALLBACK 콜백입니다.
freeDecoderCallback
디코더의 instance 해제하는 WS_FREE_DECODER_CALLBACK 콜백입니다.
설명
WS_CHANNEL 수신되는 즉시 메시지의 인코딩된 바이트를 압축 해제, 수정 또는 변환할 수 있습니다. WS_CHANNEL_DECODER 이러한 수정을 가로채고 수행하는 데 필요한 후크를 제공합니다.
채널을 만들 때 적절한 함수를 사용하여 WS_CHANNEL_PROPERTY_DECODER 설정해야 합니다.
지정된 콜백은 다음 문법에 따라 호출됩니다.
decodercalls := create decoderloop* free
decoderloop := decodestart
| decodestart getcontenttype
| decodestart getcontenttype (decode*)
| decodestart getcontenttype (decode*) decodeend
채널 또는 디코더에서 메시지를 읽는 동안 오류가 발생하는 경우 디코더에 메시지의 전체 디코딩 시퀀스가 표시되지 않을 수 있습니다. 호출된 콜백에 따라 적절한 상태로의 전환을 처리하도록 디코더를 준비해야 합니다.
WS_CHANNEL_TYPE_SESSION WS_TCP_CHANNEL_BINDING 사용하는 경우 콘텐츠 형식이 채널에 대해 고정됩니다. 이 경우 WS_DECODER_GET_CONTENT_TYPE_CALLBACK 모든 메시지의 콘텐츠 형식에 대해 정확히 동일한 값을 반환해야 합니다.
WS_DECODER_DECODE_CALLBACK 0바이트를 반환할 때까지 WS_DECODER_END_CALLBACK 호출되지 않습니다.
채널이 디코더 instance 사용이 완료되면 WS_FREE_DECODER_CALLBACK 통해 해제됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
머리글 | webservices.h |