Hitachi

Hitachi System Information Capture リファレンス 


8.3.2 GET要求

機能

入力用の蓄積ファイルから電文情報の読み込み要求(GET要求)を行います。

形式

ANSI Cの形式

#include <esafl.h>
int es_afl_get(ESAFL_DTPARAM *dtparam_pt, ESLONG flags)

パラメタの内容

ESAFL_DTPARAMのパラメタ内容

typedef struct es_afl_dtparam_t{        ………データ管理パラメタ構造体
    ESAFL_HEAD    *head_pt;             ………ヘッダパラメタ構造体アドレス
    ESAFL_DATA    *data_pt;             ………データパラメタ構造体アドレス
    char    yobi1[64];                  ………予備
    char    hsic_area1[512];            ………HSIC使用領域1
    char    hsic_area2[512];            ………HSIC使用領域2
} ESAFL_DTPARAM;

ESAFL_HEADのパラメタ内容

typedef struct es_afl_head_t{           ………ヘッダパラメタ構造体
    unsigned char    src_ip[4];         ………送信元IPアドレス
    unsigned char    dst_ip[4];         ………送信先IPアドレス
    unsigned short   src_port;          ………送信元ポート番号
    unsigned short   dst_port;          ………送信先ポート番号
    ESULONG protocol;                   ………プロトコル種別
    char    data_key[32];               ………電文キー
    char    yobi[80];                   ………予備
} ESAFL_HEAD;

ESAFL_DATAのパラメタ内容

typedef struct es_afl_data_t{           ………データパラメタ構造体
    ESLONG  data_area_len;              ………電文格納エリア長
    char    yobi1[4];                   ………予備
    ESLONG  indata_len;                 ………入力電文長
    ESLONG  indata_len1;                ………実入力電文長
    char    *indata_area_pt;            ………入力電文格納エリアアドレス
    ESLONG  outdata_len;                ………出力電文長
    char    yobi2[4];                   ………予備
    char    *outdata_area_pt;           ………出力電文格納エリアアドレス
    char    yobi[88];                   ………予備
} ESAFL_DATA;

UAPで値を設定するパラメタ項目

dtparam_pt

データ管理パラメタ構造体のアドレスを設定してください。

データ管理パラメタ構造体に次の情報を設定してください。

  • ヘッダパラメタ構造体アドレス

    ヘッダパラメタ構造体のアドレスを設定してください。

  • データパラメタ構造体アドレス

    データパラメタ構造体のアドレスを設定してください。

データパラメタ構造体に次の情報を設定してください。

  • 電文格納エリア長

    電文を格納するエリア長を設定します。1以上の値を設定してください。

  • 入力電文格納エリアアドレス

    電文を格納するエリアのアドレスを設定します。

    [図データ]

flags

ESNOFLAGSを設定してください。

HSICから値が返されるパラメタ項目

dtparam_pt

データ管理パラメタ構造体に次の情報を設定します。

  • HSIC使用領域1

    HSICが使用する情報が返されます。

    PUT要求時に、本パラメタ情報をデータ管理パラメタ構造体のHSIC使用領域1に設定してください。

  • HSIC使用領域2

    HSICが使用する情報が返されます。

    PUT要求時に、本パラメタ情報をデータ管理パラメタ構造体のHSIC使用領域2に設定してください。

ヘッダパラメタ構造体に次の情報を設定します。

  • 送信元IPアドレス

    取得した電文の送信元IPアドレスが次に示す形式で返されます。

    例) 172.165.112.20

    [0]

    [1]

    [2]

    [3]

    0xAC

    0x A5

    0x70

    0x14

  • 送信先IPアドレス

    取得した電文の送信先IPアドレスが次に示す形式で返されます。

    例) 172.165.112.20

    [0]

    [1]

    [2]

    [3]

    0xAC

    0x A5

    0x70

    0x14

  • 送信元ポート番号

    取得した電文の送信元ポート番号が返されます。

  • 送信先ポート番号

    取得した電文の送信先ポート番号が返されます。

  • プロトコル種別

    取得した電文のプロトコル種別が返されます。

    ESAFL_PROTOMOD_TCP :TCPプロトコル

    ESAFL_PROTOMOD_UDP :UDPプロトコル

    ESAFL_PROTOMOD_HTTP:HTTPプロトコル

  • 電文キー

    取得した電文の電文キー(16進数)が返されます。

データパラメタ構造体に次の情報を設定します。

  • 入力電文長

    入力電文格納エリアに取得した電文のサイズが返されます。ESAFLER_OVERFLOWでリターンしたときは、電文格納エリア長が返されます。

    コネクション切断、もしくはパケットロストが発生している場合、入力電文長は0が返されます。複数のGET要求で取得した電文を組み立ててPUT要求を行っているときは、本GET要求を契機にして後処理を行ってください。

  • 実入力電文長

    取得した電文の実サイズが返されます。

  • 入力電文格納エリアアドレス

    入力電文格納エリアに取得した電文が返されます。

リターン値

リターン値

意味

ES_OK

正常に終了しました。

ESAFLER_ARGUMENT

引数に設定した値が間違っています。

ESAFLER_TIMING

この関数を発行できる状態ではありません。

ESAFLER_CONDITION

INIT要求時に入力ファイルパラメタ構造体を設定していません。

ESAFLER_NO_DATA

取得できる電文情報がありません。

ESAFLER_OVERFLOW

入力電文格納エリアが小さいです。

ESAFLER_IOERR

蓄積ファイルへのI/Oエラーが発生しました。

ESAFLER_SYSERR

システムエラーが発生しました。

ESAFLER_UNRESOLVABLE

その他のエラーが発生しました。

注意事項