-
名前
-
Internet Data - データ入力ストリームを制御するデータオブジェクト
-
概要
-
インターネットから入力されるデータは、独自のデータ構造およびクラスを使用して処理されます。これを使用すると、URL
接続が確立し、データが送信され、コンテンツヘッダーが検出された後、ユーザーの制御下でさまざまな方法でデータを処理することができます。
この Internet Data オブジェクトは、thin クライアント用スマートコードによって自動的に処理されます。これには、データを読み込んでパラレル変換し、グループデータオブジェクトの内容を更新するための非公開コードが組み込まれています。この処理については、「生成済みクライアント-サーバー用コールアウトおよびメソッド」のセクションで詳細に説明しています。
受信データの MIME 型が、予定していた thin クライアントの非公開
MIME 型と一致しない場合 (または、ユーザーが代替受信ハンドラを用意していた場合)、データは、処理のためにスタブルーチンに渡されます。生成済みスタブには、InputStream
データへのアクセス方法とデータの読み込みおよび処理方法に関するコメント付きの例が含まれています。
C および C++ でのインターネット接続とストリーム処理は、java.net および
java.io URL URLConnection、InputStream、OutputStream などのクラスと同じ
API に作用するクラスおよびオブジェクトを使用して処理されます。これは、あるツールキットもしくは言語で記述されたコードを別のツールキットもしくは言語に簡単に移行できるようにしたり、まったく同じ方法で動作する代替
thin クライアントを導入するために、共通 API を提供することを目的としています
次のデータ構造は、Internet Data インタフェースを定義しています。ハンドラルーチンに渡されるデータオブジェクトは、特定のトランスポートメカニズム
(ここでは HTTP) のためのインタフェースを実装したものであるため、抽象的なデータ構造です。
-
形式
C |
typedef struct sc_idata_s
{
/* public: */
string_f getMimeType; /* 純粋仮想 */
InputStream_f getInputStream; /* 純粋仮想 */
int_f getContentLength; /* 純粋仮想 */
int_f load; /* 純粋仮想 */
} sc_idata_t;
|
C++ |
class sc_idata_c
{
public:
virtual char * getMimeType() = 0;
virtual InputStream * getInputStream() = 0;
virtual int getContentLength() = 0;
virtual int load( sc_stdcs_c* data) = 0;
};
|
Java |
package utils_java;
public abstract class SCIData
{
public abstract String getMimeType();
public abstract InputStream getInputStream() throws IOException;
public abstract int getContentLength();
public abstract boolean load( SCStdCS csdata) throws IOException;
}
|
-
説明
-
getMimeType()
-
- Web サーバーによって返されたコンテンツヘッダーから取得した
URL の MIME 型を返します。thin クライアントトランザクションが正常な場合、非公開の
MIME 型は次のようになります
x-application/sc-GROUPNAME
これは、接続の完全性を保証するためにクライアントとサーバーの両方で使用されます。
独自の処理ルーチンを用意する場合は、異なる
MIME 型を受け取った場合に備えて、代替処理メカニズムを用意します。
-
getContentLength()
-
- データを送信している Web サーバーによって報告された、予想されるデータ長を返します。ファイアウォールまたはプロキシが介在する場合、これは信頼できないことがあり、データ長として -1
(指定なし) が返されることがよくあります。
-
getInputStream()
-
- URL が返した InputStream にアクセスできるようになります。受信データは次のように処理できます。
-
load()
-
InputStream を読み取り、その内容をグループオブジェクトに読み込みます。これは
thin クライアントコードによって使用され、グループの非公開 MIME 型と一致するデータを要求します。
-
使用法
-
例
-
関連項目
-