Smart CODE
生成済みコードに関するオンラインガイド

はじめに

  1. スマートコードは、たいへん単純です。X-Designer によって生成されるインタフェースコードやコールバックスタブのほかに、次のようなスマートコードを生成することもできます。
  2. ツールキット独立
  3. インターネット thin クライアント (イントラネット) アプリケーション
  4. インターネットリソースへのアクセス

  5. 大域的ヘッダーファイルを除き、すべての新しいコードはサブディレクトリに生成されます。これらのディレクトリには、ユーザーが選択した関数と言語に従って名前が付けられます。したがって、C で生成された Motif 固有のコードは、motif_c サブディレクトリに格納され、java のコールアウト (ユーザーがプログラムするためのスタブ) は、callouts_java サブディレクトリに格納されます。


  6. C および C++ の場合、新しいコードは、メークファイルを使用してすべて結合されます。java の場合、パッケージの配列は、すべて次のようなコマンドによって構築されます。
  7. $ javac *.java
    
    (正しい JDK を使用して、CLASSPATH が適切に設定されている場合)。

    Java JDK 1.1 のコードを生成している場合、次の 2 つのシェルスクリプトが生成されます。

  8. javac11.sh - javac を呼び出す前に CLASSPATH を設定します
  9. java11.sh - アプリケーションを実行する前に CLASSPATH を設定します
  10. JDK 1.0 の場合、javac10.sh および java10.sh が生成されます。
  11. スマートコードについて最小限、知っておくと役立つことは、以下の通りです。
  12. callouts_* ディレクトリについては、知っている必要があります。この中のコードは、ユーザーのアプリケーションを動作させるために入力する必要のあるスタブの書式になっています。
  13. グループデータ構造に慣れるために、コードと同時に生成されるロードマップマニュアルを参照してください。これは、Web ブラウザで読むことができ、作成したグループを使用してプログラムを作成するために知っておくべき情報が注釈付きで要約されています。生成する内容に従って、グループコードは groups_* に、ツールキットラッパーは motif_* mfc_* または awt_* にあります。これらのディレクトリを調べる必要はありません。ツールキットラッパーのディレクトリには、各ツールキット API を使用して個々のコントロールをプログラムする方法を示すコードのソースが豊富にあります。
  14. thin クライアントアプリケーションを記述している場合、server_* ディレクトリにある、コールバックと同じ名前を持つファイルについて知っておく必要があります。サーバーを構築するために必要なすべてのファイルは、サーバーを取得してリモートに構築するために、一緒にしておく必要があります。このため、これらのファイルは callouts_* ディレクトリにはありません。
  15. Java URL、InputStream および OutputStream クラス API に関する知識が移行できれば、thin クライアントとインターネットプログラミングにとって大変便利だと思われます。C および C++ では、これらの API を導入し、どの生成オプションを使用していても、同じスタイルで独自のアプリケーションを作成できるようにしています。このコードは、ほかのインターネット接続コードと一緒に http_* サブディレクトリに格納されますが、このディレクトリは無視して、ドキュメント化された API からプログラミングすることをお勧めします。

thin クライアント用スマートコードとインターネット用スマートコード

ルーチンを使用して実行時にインターネット接続を構成し、プロキシ設定、URL、および URL の一部として送られるその他のデータを使用したり、変更することができます。

取得/設定スマートコードを使用している場合

作成したコードは callouts_* ディレクトリに書き込みます。コールアウトファイルには _user という接尾辞が付いています。thin クライアントおよびインターネットスタブには _cs という接尾辞が付いています。したがって、スタイルを切り替えると、元の _user ファイルにはアクセスせず、メークファイルの中で参照されなくなります。

thin クライアント用スマートコードを使用している場合

次のようにして、簡単にクライアントアプリケーションを構築できます。
$ make
コーディングは不要で、アプリケーションはすべてサーバーに書き込まれ、次のコマンドを使用して構築されます。
$ make server
ユーザーのデータとサーバーから返されるデータをチェックし、どちらかの時点でコールバックを中止することができます。

グループ内のインタフェース要素の一部 (またはすべて) を非公開にし、さらにサーバーにとってより適切である場合は、グループ内のその他のデータ要素を使用して異なるフォームでデータを送信 (および受信) することにより、サーバーへ送信するデータを制御することができます。

送信および受信ハンドラを定義することにより、内部のデータ処理コードを無効にすることができます。

バンドデータの範囲外のハンドラを使用して、エラー条件を処理することができます。

インターネット用スマートコードを使用している場合

データを処理するために受信ハンドラを用意する必要があります。

受信したデータは、ストリームとして処理するか、またはスマートコードの InputData を使用してデータを自動的に読み込み、getData() および getSize() メソッドを使用してアクセスできるようにすることが可能です。

Web サーバーにデータを POST する必要がある場合は、送信ハンドラを用意します。

HTML の URL を処理する場合、ユーザーは HTML の構文解析を行う必要がありません。スマートコードでは、入力ストリームの特別な機能を配信対象として指定し (インタフェースにコールバックを設定するのと同様に)、これらの機能にたどりついたときに「拾い上げ」ます。HTML を処理するために、従来の解析機能を作成したり、使用する必要はありません