struktur WS_CHANNEL_ENCODER (webservices.h)

Struktur yang digunakan untuk menentukan sekumpulan panggilan balik yang dapat mengubah jenis konten dan byte yang dikodekan dari pesan terkirim.

Sintaks

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;

Anggota

createContext

Konteks yang akan diteruskan ke WS_CREATE_ENCODER_CALLBACK.

createEncoderCallback

Panggilan balik WS_CREATE_ENCODER_CALLBACK yang membuat instans encoder.

encoderGetContentTypeCallback

Panggilan balik WS_ENCODER_GET_CONTENT_TYPE_CALLBACK yang dipanggil saat pesan akan dikodekan.

encoderStartCallback

Panggilan balik WS_ENCODER_START_CALLBACK yang dipanggil untuk mulai mengodekan pesan.

encoderEncodeCallback

Panggilan balik WS_ENCODER_ENCODE_CALLBACK yang dipanggil untuk mengodekan pesan.

encoderEndCallback

Panggilan balik WS_ENCODER_END_CALLBACK yang dipanggil ke di akhir pengodean pesan.

freeEncoderCallback

Panggilan balik WS_FREE_ENCODER_CALLBACK yang membebaskan instans encoder.

Keterangan

WS_CHANNEL mungkin ingin mengompresi, memodifikasi, atau mengubah byte pesan yang dikodekan sebelum dikirim. WS_CHANNEL_ENCODER menyediakan kait yang diperlukan untuk mencegat dan melakukan modifikasi ini.

Saat membuat saluran, WS_CHANNEL_PROPERTY_ENCODER harus diatur dengan fungsi yang sesuai.

Tata bahasa untuk panggilan balik encoder adalah:


encodercalls := create encoderloop* free
encoderloop  := getcontenttype
             |  getcontenttype encodestart
             |  getcontenttype encodestart (encode*)
             |  getcontenttype encodestart (encode*) encodeend

Encoder mungkin tidak melihat urutan pengodean lengkap untuk pesan jika saluran atau encoder mengalami kesalahan saat menulis pesan. Encoder 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_ENCODER_GET_CONTENT_TYPE_CALLBACK harus mengembalikan nilai yang sama persis untuk jenis konten setiap pesan.

Ketika saluran selesai menggunakan instans encoder, saluran akan membebaskannya melalui WS_FREE_ENCODER_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