2.12.1.1 スイッチ要素ルーチンのコーディング
アプリケーションで新しいバッファ・タイプを定義するのは、特別な処理を行うためです。たとえば、アプリケーションで、次のプロセスにバッファを送信する前に、データ圧縮を何度か行うとします。このようなアプリケーションでは、送信前処理ルーチンを記述します。次のリストは、送信前処理ルーチンの宣言を示しています。
送信前処理スイッチ要素のセマンティクスのリスト
long
presend(ptr, dlen, mdlen)
char *ptr;
long dlen, mdlen;
-
ptr
は、アプリケーション・データ・バッファを指すポインタです。 -
dlen
は、ルーチンに渡すデータの長さです。 -
mdlen
は、データが格納されたバッファのサイズです。
送信前処理ルーチンで行うデータ圧縮は、アプリケーションのシステム・プログラマが行います。
ルーチンの処理が正常に終了した場合、同じバッファ内にある圧縮後の送信データの長さが返されます。処理が失敗した場合は、-1
が返されます。
プログラマが記述した送信前処理ルーチンには、Cコンパイラが使用できる任意の識別子を付けることができます。たとえば、_mypresend
という名前を付けます。
_mypresend
圧縮ルーチンを使用する場合、受信側にはそのデータの圧縮を解除する_mypostrecv
ルーチンが必要です。『Oracle Tuxedo C関数リファレンス』のbuffer
(3c)に示すテンプレートを使用してください。
親トピック: 独自のバッファ・タイプの定義