3.5.1 MQTメイン関数の作成

MQTメイン関数は,UOC関数アドレスを指定し,MQT通信プロセスメイン関数を呼び出すプログラムです。MQTメイン関数とUOCは,同じ言語(ANSI C,C++,またはK&R版C言語)で作成する必要があります。

MQTメイン関数のコーディングについて,次に示します。

ANSI C,C++言語の場合

#include <dcmtcquo.h>     /* TP1/MQ用ヘッダファイル    */ …1.

extern long med_uoc01(dcmtcq_uoc_parmlist *);
                        /* メッセージ編集出口UOC関数 */ …2.

dcmtcq_uoc_def_t dcmtcq_uoctbl =
                              {NULL, NULL, NULL, NULL}; …3.

int main(void)
{
 dcmtcq_uoctbl.med_uoc = (dcmqt_uocfunc)med_uoc01;
               /* メッセージ編集出口UOC関数アドレス設定 */ …4.
 dc_mtcq_main();    /* MQT通信プロセスメイン関数コール  */ …5.
 return(0);                  /* MQTメイン関数リターン  */ …6.
}

  1. プロトコル提供ヘッダを取り込みます。
  2. 使用するUOC関数のプロトタイプ宣言をします。UOCのリターン値はlong型にしてください。
  3. UOCテーブルを確保して,初期化します。必ずこのとおりコーディングしてください。
  4. UOC関数のアドレスを,UOCテーブルに設定します。
    dcmtcq_uoctbl.med_uoc:メッセージ編集出口UOC関数のアドレス
  5. MQT通信プロセスメイン関数を呼び出します。必ずこのとおりコーディングしてください。
  6. MQTメイン関数をリターンします。
K&R版C言語の場合

#include <dcmtcquo.h>      /* TP1/MQ用ヘッダファイル    */ …1.

extern long med_uoc01();   /* メッセージ編集出口UOC関数 */ …2.

dcmtcq_uoc_def_t dcmtcq_uoctbl;                            …3.

main()
{
 dcmtcq_uoctbl.med_uoc = (dcmtcq_uocfunc)med_uoc01;
              /* メッセージ編集出口UOC関数アドレス設定 */ …4.
 dc_mtcq_main();   /* MQT通信プロセスメイン関数コール  */ …5.
}

  1. プロトコル提供ヘッダを取り込みます。
  2. 使用するUOC関数のextern宣言をします。UOCのリターン値はlong型にしてください。
  3. UOCテーブルを確保します。必ずこのとおりコーディングしてください。
  4. UOC関数のアドレスを,UOCテーブルに設定します。
    dcmtcq_uoctbl.med_uoc:メッセージ編集出口UOC関数のアドレス
  5. MQT通信プロセスメイン関数を呼び出します。必ずこのとおりコーディングしてください。