структура WS_CHANNEL_ENCODER (webservices.h)
Структура, используемая для указания набора обратных вызовов, которые могут преобразовывать тип контента и закодированные байты отправленного сообщения.
Синтаксис
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;
Члены
createContext
Контекст, который будет передан в WS_CREATE_ENCODER_CALLBACK.
createEncoderCallback
Обратный вызов WS_CREATE_ENCODER_CALLBACK , который создает экземпляр кодировщика.
encoderGetContentTypeCallback
Обратный вызов WS_ENCODER_GET_CONTENT_TYPE_CALLBACK , который вызывается при кодировании сообщения.
encoderStartCallback
Обратный вызов WS_ENCODER_START_CALLBACK , который вызывается для начала кодирования сообщения.
encoderEncodeCallback
Обратный вызов WS_ENCODER_ENCODE_CALLBACK, который вызывается для кодирования сообщения.
encoderEndCallback
Обратный вызов WS_ENCODER_END_CALLBACK, вызываемый в конце кодирования сообщения.
freeEncoderCallback
Обратный вызов WS_FREE_ENCODER_CALLBACK , освобождающий экземпляр кодировщика.
Комментарии
WS_CHANNEL может потребоваться сжимать, изменять или иным образом преобразовывать закодированные байты сообщения перед их отправкой. WS_CHANNEL_ENCODER предоставляет необходимые перехватчики для перехвата и выполнения этих изменений.
При создании канала необходимо задать WS_CHANNEL_PROPERTY_ENCODER с соответствующими функциями.
Грамматика для обратных вызовов кодировщика:
encodercalls := create encoderloop* free
encoderloop := getcontenttype
| getcontenttype encodestart
| getcontenttype encodestart (encode*)
| getcontenttype encodestart (encode*) encodeend
Кодировщик может не видеть полную последовательность кодирования для сообщения, если канал или кодировщик обнаруживает ошибку при записи сообщения. Кодировщик должен быть подготовлен к обработке перехода в соответствующее состояние на основе вызываемых обратных вызовов.
При использовании WS_TCP_CHANNEL_BINDING с WS_CHANNEL_TYPE_SESSION тип контента фиксируется для канала. В этом случае WS_ENCODER_GET_CONTENT_TYPE_CALLBACK должно возвращать точно такое же значение для типа контента каждого сообщения.
После завершения работы канала с помощью экземпляра кодировщика он освободит его через WS_FREE_ENCODER_CALLBACK.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Верхняя часть | webservices.h |