メッセージをオブジェクトに配信するよう ToolTalk サービスに指示するには、オブジェクトとその otype を識別する仕様を作成します。表 12–1 に、オブジェクト仕様の作成と書き込みに使用する ToolTalk 関数を示します。
表 12–1 作成用関数
ToolTalk 関数 |
説明 |
---|---|
tt_spec_create(const char *filepath) |
仕様を作成する。返される型は char * |
tt_spec_prop_set(const char *objid, const char *propname, const char *value) |
指定された文字列の値にプロパティを設定する。返される型は Tt_status |
tt_spec_prop_add(const char *objid, const char *propname, const char *value) |
文字列プロパティを追加する。返される型は Tt_status |
tt_spec_bprop_add(const char *objid, const char *propname, const unsigned char *value, int length) |
バイト配列プロパティを追加する。返される型は Tt_status |
tt_spec_bprop_set(const char *objid, const char *propname, const unsigned char *value, int length) |
指定されたバイト配列値にプロパティを設定する。返される型は Tt_status |
tt_spec_type_set(const char *objid, const char *otid) |
仕様のオブジェクト型を設定する。返される型は Tt_status |
tt_spec_write(const char *objid) |
データベースに仕様を書き込む。返される型は Tt_status |
オブジェクト仕様をメモリーに作成し、そのオブジェクトの objid を取得するには、tt_spec_create を使用します。
オブジェクト仕様に otype を割り当てるには、tt_spec_type_set を使用します。仕様が最初に書き込まれる前に、その型を設定しなければなりません。この型は変更できません。
otype を割り当てないでオブジョクト仕様を作成する場合、または ToolTalk 型データベースにとって不明の otype を持つオブジェクト仕様を作成する場合、そのオブジェクトにアドレス指定されたメッセージは配信できません。(ToolTalk サービスは、ユーザーが指定した otype が ToolTalk 型データベースにとって既知であるかどうかは検査しません。)
ユーザーは、オブジェクトに関連付けたい「プロパティ」を決定できます。つまり、関連付けたいプロパティを仕様に追加します。ToolTalk サービスでは、ユーザー専用の内部データに、たとえば通常の ASCII 形式テキストファイル内のオブジェクト用 objid のような情報をいつでも格納できるわけではありません。まず、仕様プロパティ内の objid の場所を格納して、さらにこの場所を利用すれば、ツールの内部データ構造のどこにオブジェクトがあるかを識別できます。
仕様プロパティは、ユーザーにとっても便利なものです。ユーザーは、コメントまたはオブジェクト名などのプロパティを後で見ることができるオブジェクトに関連付けたいことがあります。ユーザーのアプリケーションまたは別の ToolTalk を使ったツールが、ユーザーに代わってオブジェクトに関連付けたプロパティの検索と表示を行います。
仕様内にプロパティを格納するには、tt_spec_prop_set を使用します。