5.6.3 例:サービスの動的な公開と通知解除

次のリストは、tpadvertise()関数の使用方法を示しています。このコードでは、サーバーTLRが起動時にTLR_INITサービスだけを提供するようにコーディングされています。初期化後、TLR_INITDEPOSITWITHDRAWという2つのサービスを通知します。両方ともtlr_funcs関数によって実行され、サーバーTLRに組み込まれています。

DEPOSITWITHDRAWを通知した後、TLR_INITは自分自身で通知を解除します。

動的な公開と通知解除のリスト

extern void tlr_funcs()
 .
 .
 .
if (tpadvertise("DEPOSIT", (tlr_funcs)(TPSVCINFO *)) == -1)
       check for errors;
if (tpadvertise("WITHDRAW", (tlr_funcs)(TPSVCINFO *)) == -1)
       check for errors;
if (tpunadvertise("TLR_INIT") == -1)
       check for errors;
tpreturn(TPSUCCESS, 0, transb->data,0L, 0);