struktur WS_CHANNEL_DECODER (webservices.h)
Struktur yang digunakan untuk menentukan sekumpulan panggilan balik yang dapat mengubah jenis konten dan byte yang dikodekan dari pesan yang diterima.
Sintaks
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;
Anggota
createContext
Konteks yang akan diteruskan ke WS_CREATE_DECODER_CALLBACK.
createDecoderCallback
Panggilan balik WS_CREATE_DECODER_CALLBACK yang membuat instans dekoder.
decoderGetContentTypeCallback
Panggilan balik WS_DECODER_GET_CONTENT_TYPE_CALLBACK yang dipanggil untuk mendapatkan jenis konten pesan.
decoderStartCallback
Panggilan balik WS_DECODER_START_CALLBACK yang dipanggil pada awal pendekodean pesan.
decoderDecodeCallback
Panggilan balik WS_DECODER_DECODE_CALLBACK yang dipanggil untuk mendekode pesan.
decoderEndCallback
Panggilan balik WS_DECODER_END_CALLBACK yang dipanggil di akhir pendekodean pesan.
freeDecoderCallback
Panggilan balik WS_FREE_DECODER_CALLBACK yang membebaskan instans dekoder.
Keterangan
WS_CHANNEL mungkin ingin mendekompresi, memodifikasi, atau mengubah byte pesan yang dikodekan segera setelah diterima. WS_CHANNEL_DECODER menyediakan kait yang diperlukan untuk mencegat dan melakukan modifikasi ini.
Saat membuat saluran, WS_CHANNEL_PROPERTY_DECODER harus diatur dengan fungsi yang sesuai.
Panggilan balik yang ditentukan akan dipanggil sesuai dengan tata bahasa berikut:
decodercalls := create decoderloop* free
decoderloop := decodestart
| decodestart getcontenttype
| decodestart getcontenttype (decode*)
| decodestart getcontenttype (decode*) decodeend
Dekoder mungkin tidak melihat urutan dekode lengkap untuk pesan jika saluran atau dekoder mengalami kesalahan saat membaca pesan. Dekoder harus siap untuk menangani transisi ke status yang sesuai berdasarkan panggilan balik yang dipanggil.
Saat menggunakan WS_TCP_CHANNEL_BINDING dengan WS_CHANNEL_TYPE_SESSION, jenis konten diperbaiki untuk saluran. Dalam hal ini, WS_DECODER_GET_CONTENT_TYPE_CALLBACK harus mengembalikan nilai yang sama persis untuk jenis konten setiap pesan.
WS_DECODER_END_CALLBACK tidak akan dipanggil sampai WS_DECODER_DECODE_CALLBACK mengembalikan 0 byte.
Ketika saluran selesai menggunakan instans decoder, saluran akan membebaskannya melalui WS_FREE_DECODER_CALLBACK.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Header | webservices.h |