tpadvertise
名称
サービス名の広告
形式
ANSI C,C++の形式
#include <xatmi.h>
int tpadvertise(char *svcname,void(*func)(TPSVCINFO *))
K&R版 Cの形式
#include <xatmi.h>
int tpadvertise(svcname,func)
char *svcname;
void (*func)();
機能
関数tpadvertise()は,サーバで提供するサービスを広告します。この関数を呼び出さない場合,サーバのサービスは,ブート時に広告されて,シャットダウンされたときに広告を取り消されます。
関数tpadvertise()は,svcnameのサーバを広告します。svcnameは15文字以下にしてください。ただし,NULLやNULL文字列("")は使えません。長過ぎる名称でも有効となりますが,15文字に切り詰められます。ユーザは,切り詰められた名称がほかのサービス名と一致しないようにしてください。
引数のfuncは,サービス関数のアドレスです。この関数は,svcnameの要求がサーバに受信されたら,いつでも起動されます。引数のfuncには,NULLを設定しないでください。
svcnameがすでにそのサーバで広告されていて,funcが広告されている関数と一致した場合は,tpadvertise()は正常にリターンします(切り詰められた名称が,すでに広告されていた名称と一致していた場合も含みます)。しかし,もしそのsvcnameがすでにそのサーバで広告されていても,funcが広告されている関数と一致しない場合は,エラーリターンします(切り詰められた名称が,すでに広告されている名称と一致していた場合にも起こります)。
『引数』
『●svcname
要求するサービスのサービス名を設定します。』
『●(*func)()
サービス関数のアドレスです。』
リターン値
エラー時には,-1をリターンして,tperrnoにエラーの状態を示す値を設定します。
エラー
次のような場合,tpadvertise()はエラーリターンして,次のうちどれか一つの値をtperrnoに設定します。
リターン値 | リターン値(数値) | 意味 |
---|---|---|
TPEINVAL | 4 | 引数svcnameがNULLかNULL文字(""),またはfuncにNULLが設定されています。 |
TPELIMIT | 5 | 領域の制限で,引数svcnameを広告できません。 |
TPEOS | 7 | オペレーティングシステムにエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。 |
TPEPROTO | 9 | tpadvertise()が間違った状況で呼ばれました。 |
TPESYSTEM | 12 | コミュニケーションリソースマネジャシステムでエラーが起こりました。 厳密なエラーの性質は,product-specificな方法で定義されます。 |
TPEMATCH | 23 | 引数svcnameはすでにそのサーバで広告されていますが,関数はfuncで示されているものではありません。関数が失敗しても,svcnameは,現在広告している関数を広告したままです(つまり,funcは現在広告されている関数と置き換わりません)。 |
関連項目
tpservice(),tpunadvertise().
『OpenTP1で使う場合の注意事項』