Smart CODE | |
生成済みコードに関するオンラインガイド
|
シングルサーバープログラムは、X-Designer によって生成された Motif、MFC、または Java の thin クライアントに使用できます。また、Web ブラウザフォームやアプレットインタフェース、およびグラフィカルでないクライアントで使用できる可能性もあります。
すでに取得/設定スマートコードコールアウトを使用して開発を行なっている場合、作成したコードは、ツールキットのあらゆる前提条件からすでに独立しています。最小限の変更で、アプリケーションからサーバーのコールバックに処理を移動することができます。
クライアント側の a X-Designer インターネット thin クライアントアプリケーションは、ユーザーがコーディングする必要はありません。クライアント側を微調整する必要がある場合は、precondition (事前条件) および postcondition (事後条件) メカニズムを使用するか、サーバーへの、またはサーバーからのデータ転送を取り消すことができます。
ServerCallbackProc は、サーバーコードの一部として生成されるコールバックスタブです。これにはグループ内の全メンバーの特性値も含めた、サーバー側のグループオブジェクトに対する完全なアクセス権があります。クライアント側では、ユーザーインタフェースコントロールのグループですが、サーバー側では、データ要素のグループです。
個々のデータ要素は、クライアント側のコントロールの設定または値に対応しています。トグルの状態、テキストフィールドの値などをチェックすることができます。クライアントインタフェースのどの部分の状態も (直接) 制御したり調査したりすることはできません。さらに微調整が必要な場合は、グループにその他の要素を追加し、使用する必要のある機能を処理することができます。
サーバーに適したデータ構造とユーザーインタフェースコントロールのセットが 1 対 1 で対応していない場合、コントロールを非公開にして、グループ内のその他のデータ要素を使用してデータを処理することができます。この方法によって、サーバーに送信されるデータをユーザーが完全に制御できるようになり、データの送信方法がインタフェースに再度適用されます。
サーバー側のアプリケーションコードは、一度構築してインストールすれば、GoLive! 機能を使用して X-Designer 内でクライアント側の開発をさらに進めることができます。この場合、X-Designer で開発するインタフェースは、すべての手順を含んだ thin クライアントで、コンパイルサイクルは必要ありません。
C |
typedef int (*ServerCallbackProc)( sc_data_t *) sc_data_t * data; /* 例 */ int CALLBACKNAME ( data) sc_data_t * data; { GROUPNAME_t * g = (GROUPNAME_t*)data->group; return 1; } |
---|---|
C++ |
class METHODNAME_c: public sc_data_c { public: int doit(); static METHODNAME_c * new_METHODNAME_c(); GROUPNAME_c * getGroup(); }; |
Java |
このリリースでは使用できません。 |
シングルサーバー側コールバックの例 | |
---|---|
言語 | 使用法 |
C |
int doit_callback ( sc_data_t * data) { group0_t * g = (group0_t*)data->group; if (SC_GET(g->toggle1)) SC_SET(g->text1, "Hallo World"); else SC_SET(g->text1, "Farewell Cruel World"); return 1; } |
C++ |
class doit_method_c: public sc_data_c { int doit() { group0_t * g = getGroup(); if (g->toggle1->get()) g->text1->set("Hallo World"); else g->text1->set("Farewell Cruel World"); return 1; } }; |
Java |
このリリースでは使用できません。 |
クライアントからの次のポーリングを要求するコールバック | |
---|---|
言語 | 使用法 |
C |
#include <time.h> int doit_callback ( sc_data_t * data) { group0_t * g = (group0_t*)data->group; time_t t; time( &t); SC_SET(g->text1,ctime(&t)); data->poll = 10; /* 10 秒ごとに試行 */ return 1; } |
C++ |
#include <time.h> class doit_method_c: public sc_data_c { int doit() { group0_t * g = getGroup(); time_t t; time( &t); g->text1->set(ctime(&t)); setPoll(10); /* 10 秒ごとに試行 */ return 1; }; |
Java |
このリリースでは使用できません。 |