Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引


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通信プロセスメイン関数を呼び出します。必ずこのとおりコーディングしてください。