ToolTalk ユーザーズガイド

第 5 章 アプリケーション情報の管理

ToolTalk メッセージを受信したいアプリケーションは、ToolTalk サービスに対して、どの種類のメッセージを受信したいかという情報を提供します。この情報 (メッセージパターンと言います) は、実行時にアプリケーションによって動的に提供されます。プロセス型 (ptype) とオブジェクト型 (otype) のファイルから提供される場合もあります。

アプリケーション型のインストール

アプリケーション型のインストールは、頻繁に行う必要はありません。型情報をインストールする必要があるのは、新しい型が作成されたときか、アプリケーションにエラーが発生したときだけです。ptype ファイルと otype ファイルは、インストール時に ToolTalk 型コンパイラを通して実行されます。tt_type_comp は、この情報を ToolTalk 型データベースに併合します。その後アプリケーションは、ToolTalk サービスにデータベース内の型情報を読み取るように指示します。

アプリケーションの ptype ファイルと otype ファイルをインストールするには、次の手順に従います。

  1. 型ファイル上で tt_type_comp を実行します。


    % tt_type_comp your-file
    

    tt_type_comp は、cpp を介して your-file を実行し、型定義をコンパイルして、ToolTalk 型テーブルにその情報を併合します。表 5–1 は XDR 形式のテーブルの場所、表 5–2 は分類機構形式のテーブルの場所を示します。


    注 –

    分類機構インタフェースは、互換性のためだけのものです。デフォルトは XDR です。


    表 5–1 XDR 形式の ToolTalk 型テーブル

    データベース 

    XDR テーブルの使用 

    ユーザー (user) 

    ~/.tt/types.xdr

    システム (system) 

    /etc/tt/types.xdr

    デスクトップ (desktop) 

    /usr/dt/appconfig/tttypes/types.xdr

    ネットワーク (network) 

    $OPENWINHOME/etc/tt/types.xdr

    表 5–2 分類機構形式の ToolTalk 型テーブル

    データベース 

    分類機構テーブルの使用 

    ユーザー (user) 

    ~/.cetables/cetables

    システム (system) 

    /etc/cetables/cetables

    ネットワーク (network) 

    $OPENWINHOME/lib/cetables/cetables

    XDR データベースには、4 種類あります。$TTPATH 環境変数によって、どの 3 つを使用するかを決めます。$TTPATH エントリのフォーマットと優先順位に関する詳細は、tt_type_comp(1) のマニュアルページを参照してください。

    デフォルトでは、tt_type_comp はユーザーデータベースを使用します。他のデータベースを指定する場合は、-d オプションを使用します。たとえば、次のように入力します。


    % tt_type_comp -d user|system|[network|desktop] your_file
    

    注 –

    ptype ファイルまたは otype ファイル上で tt_type_comp を実行する場合、tt_type_comp は、データを ToolTalk 型データベースの形式にする前に、まずファイル上の cpp を実行し、次に構文を検査します。構文エラーが検出された場合、cpp ファイルの行番号を示すメッセージが表示されます。行検索を行うには、cpp -P source-file temp-file と入力します。これによって temp-file が表示され、tt_type_comp が報告する行のエラーを検出できます。


  2. ttsession は、ToolTalk 型データベースを自動的に再読み取りします。

    ttsession に ToolTalk 型データベースを再読み取りさせる方法については、ToolTalk サービスの更新を参照してください。

ToolTalk 型情報の検査

指定された ToolTalk 型データベースのすべての型情報を検査することも、ptype 情報だけまたは otype 情報だけを検査することもできます。検査したいデータベースを指定するには、-d オプションを使用し、usersystemnetwork のいずれかを入力して、検査したいデータベースを示します。-d オプションを使用しない場合、tt_type_comp はデフォルトのユーザーデータベースを使用します。

    ToolTalk 型データベース内のすべての ToolTalk 型情報を検査するには、次のように入力します。


    % tt_type_comp -d user|system|network -p
    

    型情報は、ソース形式で出力されます。

    ToolTalk 型データベース内のすべての ptype を表示するには、次のように入力します。


    % tt_type_comp -d user|system|network -P
    

    ptype の名前は、ソース形式で出力されます。

    ToolTalk 型データベース内のすべての otype を表示するには、次のように入力します。


    % tt_type_comp -d user|system|network -O
    

    otype の名前は、ソース形式で出力されます。

ToolTalk 型情報の削除

ToolTalk 型データベースから、ptype 情報と otype 情報を削除できます。

    tt_type_comp を使用して、型情報を削除します。次のように入力します。


% tt_type_comp -d user|system|network -r type

たとえば、サンプルアプリケーションの ToolTalk 型ネットワークデータベースから EditDemo という ptype を削除するには、次のように入力します。


% tt_type_comp -d network -r EditDemo

型情報の削除後は、実行中の ttsession に ToolTalk 型データベースを再読み取りさせて、ToolTalk サービスを最新の状態にします。詳細は、ToolTalk サービスの更新を参照してください。

ToolTalk サービスの更新

tt_type_comp(1) で ToolTalk タイプのデータベースに変更を加える場合、ToolTalk サービスは、タイプファイルを再読み取りするように自動的に指示されます。すでに実行している ToolTalk セッションに対して、明示的にデータベースを再読み取りさせたいときは、ttsession プロセスに SIGUSR2 を送信します。

ttsession プロセスに SIGUSR2 を送信するには

  1. ps コマンドを入力して、ttsession プロセスのプロセス識別子 (pid) を検索します。


    % ps -ef | grep ttsession
    
  2. kill コマンドを入力して、ttsession に SIGUSR2 シグナルを送信します。


    % kill -USR2 ttsession_pid
    

プロセス型エラー

アプリケーションがこのエラーを報告する場合は、次の状態のどちらか、または両方が存在すると考えられます。


Application is not an installed ptype.
  1. ToolTalk サービスは、ToolTalk 型データベース内で最近更新された型情報を再読み取りする指示を、アプリケーションから受けていません。ToolTalk サービスに ToolTalk 型データベースの型情報を再読み取りさせる手順については、ToolTalk サービスの更新を参照してください。

  2. アプリケーションの ptype と otype が、ToolTalk 型データベースにコンパイルおよび併合されていません。型情報のコンパイルと併合の手順については、アプリケーション型のインストールを参照してください。

ttsnoop の使用によるメッセージおよびパターンのデバッグ

ttsnoop は、カスタム構築の ToolTalk メッセージを作成して送信するためのツールです。ttsnoop を、ToolTalk メッセージの 1 つまたはすべてを選択的に監視するツールとして使用することもできます。ttsnoop プログラムは、ディレクトリ /usr/dt/bin/ttsnoop にあります。プログラムを起動するには、コマンド行に次のコマンドを入力します。


% /usr/dt/bin/ttsnoop [ -t ]

-t オプションは、特定のパターンまたはメッセージの構築に使用する ToolTalk API 呼び出しを表示します。図 5–1 は、ttsnoop を起動する際に表示されるウィンドウを示します。

図 5–1 ttsnoop 表示ウィンドウ

Graphic

    Start ボタン

    メッセージの受信を起動する場合に押します。ttsnoop は、登録するパターンに一致する着信メッセージを表示します。

    Stop ボタン

    メッセージの受信を停止する場合に押します。

    Clear ボタン

    ウィンドウをクリアする場合に押します。

    About TTSnoop ボタン

    ttsnoop についてのヘルプを見る場合に押します。


    注 –

    各ボタンおよび設定についてのヘルプを見るには、そのボタンまたは設定の上にマウスを置いて、キーボードの F1 キーまたはヘルプキーを押します。TTSnoop.info というファイルの入ったディレクトリを、環境変数 HELPPATH に入れておく必要があります。


    Display ボタン

    チェックボックスのパネルを表示して、ttsnoop ディスプレイのサブウィンドウ上で特定の ToolTalk メッセージ構成要素を強調表示する場合に押します。

    Messages ボタン

    ToolTalk メッセージの作成、格納、および送信を可能にするパネルを表示する場合に押します。

    Patterns ボタン

    ToolTalk パターンの構成と登録を可能にするパネルを表示する場合に押します。

    Send Messages ボタン

    Messages ウィンドウを使用して格納したメッセージを送信する場合に押します。

メッセージの構成と送信

初期表示ウィンドウで Messages ボタンを押すと、図 5–2 に示すポップアップパネルが表示されます。

図 5–2 ポップアップメッセージパネル

Graphic

    Add Message ボタン

    現在のメッセージ設定を格納する場合に押します。メッセージが格納されてしまうと、初期表示ウィンドウ上の Send Message ボタンを使用して、これらのメッセージの再呼び出しと送信ができます。

    Edit Contexts ボタン

    送信するメッセージコンテキストを追加、変更、または削除する場合に押します。図 5–3 で示すポップアップウィンドウによって、メッセージとともに送信するコンテキストを編集できます。

図 5–3 「Edit Send Contexts」ウィンドウ

Graphic

    Send Message ボタン

    新規に作成したメッセージを送信する場合に押します。


    注 –

    この Send Message ボタンは、メインメニュー上の Send Message ボタンと同じ機能を実行します。


パターンの構成と登録

初期表示ウィンドウの Patterns ボタンを押すと、図 5–4 に示すポップアップパネルが表示されます。

図 5–4 ポップアップパターンパネル

Graphic

パターンを登録するには、Apply ボタンを押します。パターンが登録されてしまうと、デバッグツールとして ttsnoop を使用して、他のアプリケーションがどのようなメッセージを送信しているかを監視できます。

    Edit Receive Contexts ボタン

    パターン内の受信メッセージコンテキストを追加、変更、または削除する場合に押します。図 5–5 に示すポップアップウィンドウによって、パターンとともに登録するコンテキストを編集できます。

図 5–5 「Edit Receive Contexts」ウィンドウ

Graphic

メッセージ構成要素の表示

初期表示ウィンドウ上の Display ボタンを押すと、図 5–6 に示すチェックボックスパネルが表示されます。

図 5–6 メッセージ構成要素の値を表示するチェックボックス

Graphic

チェックボックスを選択すると、指定された ToolTalk メッセージの構成要素は、表示したメッセージ上で、表示されたメッセージ構成要素の左に矢印 (--->) を付けて示されます。図 5–7 は、表示されたメッセージ構成要素を示します。

図 5–7 メッセージ構成要素の表示

Graphic

作成済みメッセージの送信

初期表示ウィンドウ上の Send Message ボタンを押すと、Messages ポップアップを使用して作成または格納したメッセージを送信できます。

メッセージの受信

初期表示ウィンドウ上の Start ボタンを押すと、ttsnoop は登録したパターンに一致する着信メッセージを表示します。図 5–8 は、表示された着信メッセージの例です。

図 5–8 着信メッセージの表示

Graphic

メッセージ受信の停止

初期表示ウィンドウ上の Stop ボタンを押すと、ttsnoop はメッセージの受信を停止します。