前述の 「ToolTalk 対応エディタ・アプリケーションが実行する必要があるタスク」で説明しているタスクの他に、エディタ・アプリケーションはその他のオプションのタスクも実行できます。オプションのタスクには、他のエディタとの調整を取るためにデスクトップ・ファイル・インタフェースを使用するものなどがあります。この節では、これらのオプションのタスクを実行できるようにエディタ・アプリケーションに組み込む必要がある ToolTalk のコーディング例をいくつか取り上げています。
この節で使用しているコーディングの一部分は、CoEditor.C ファイルから引用しています。このファイルには、エディタ・アプリケーション用の特定コマンドが入っています。詳細なソースコードについては、付録 B 「CoEd デモンストレーション・プログラム」を参照してください。
次のコーディングの一部分は、保留中の変更があるかどうかファイルに尋ねているものです。
// Does the file have any changes pending? _modifiedByOther = ttdt_Get_Modified( _contract, _file, TT_BOTH, 10 * timeOutFactor );
次のコーディングの一部分は、ファイルを最後のバージョンの内容に復元します。
// Revert file to last version status = ttdt_Revert(_contract, _file, TT_BOTH, 10 * timeOutFactor );
次のコーディングの一部分は、ファイルに対して保留中の変更を保存します。
// Save pending changes status = ttdt_Save( _contract, _file, TT_BOTH, 10 * timeOutFactor );
次のコーディングの一部分は、アプリケーションがファイルに対して保留中の変更を持っていることを配信対象のツールに通知します。
// File has been modified ttdt_file_event( _contract, TTDT_MODIFIED, _filePats, 1 );
次のコーディングの一部分は、アプリケーションがファイルを最後に保存されたバージョンの内容に復元してあることを配信対象のツールに通知します。
// File has been reverted to last version ttdt_file_event( _contract, TTDT_REVERTED, _filePats, 1 );
次のコーディングの一部分は、アプリケーションがファイルに対して保留中の変更を保存してあることを配信対象のツールに通知します。
// File has been saved ttdt_file_event( _contract, TTDT_SAVED, _filePats, 1 );
次のコーディングの一部分は、ファイルに関する ToolTalk イベントの配信対象を登録解除し、パターンを破棄します。
// Unregister interest in ToolTalk events and destroy patterns status = ttdt_file_quit( _filePats, 1 ); _filePats = 0;