8.2 MCFメイン関数の作成

TP1/NET/HSCは,OpenTP1プロセスサービスによって起動されます。

TP1/NET/HSCを起動するためには,ユーザがMCFメイン関数を作成し,コンパイル,およびリンケージを行ってTP1/NET/HSCの実行形式プログラムを作成する必要があります。リンケージには,HSC1手順の場合はmcfplhs1コマンド,HSC2手順の場合はmcfplhs2コマンドを使用します。

MCFメイン関数では,スタート関数(dc_mcf_svstart)を呼び出します。UOCを使用する場合は,MCFメイン関数でUOCの関数アドレスを指定してください。

UOCは,MCFメイン関数と同じ言語(ANSI C,C++またはK&R版 C)で作成してください。

MCFメイン関数のコーディング概要を図8-1と図8-2に示します。また,ディレクトリへの組み込み方法を図8-3に示します。

なお,これらのコーディング例は,次のファイルで提供しています。

【ANSI C,C++の場合】
HSC手順1:/BeTRAN/examples/mcf/HSC/cmlib/ansi/com1.c
HSC手順2:/BeTRAN/examples/mcf/HSC/cmlib/ansi/com2.c
【K&R版 Cの場合】
HSC手順1:/BeTRAN/examples/mcf/HSC/cmlib/c/com1.c
HSC手順2:/BeTRAN/examples/mcf/HSC/cmlib/c/com2.c

図8-1 MCFメイン関数のコーディング概要(ANSI C,C++の場合)

[図データ]

注※
HSC1手順の場合のコーディングです。HSC2手順の場合は,次のようにコーディングをしてください。

#include<dcmhsc2m.h>

図8-2 MCFメイン関数のコーディング概要(K&R版 Cの場合)

[図データ]

注※
HSC1手順の場合のコーディングです。HSC2手順の場合は,次のようにコーディングをしてください。

#include<dcmhsc2m.h>

  1. TP1/NET/HSCで提供するヘッダファイルを取り込みます。
  2. 使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。
    UOCをまったく使用しない場合,このコーディングは必要ありません。
    論理端末名称決定UOCは,HSC2手順(非同期モード)の場合だけ使用できます。
  3. UOCテーブルをextern宣言します。UOCを使用する場合,必ずこのとおりにコーディングしてください。
    UOCをまったく使用しない場合,このコーディングは必要ありません。
  4. 各UOC関数のアドレスを,次に示すシステム提供変数に設定します。使用するUOCだけコーディングしてください。

    dcmcf_uoctbl.ledtmn  /*論理端末名称決定UOCアドレス*/
    dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
    dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

    UOCをまったく使用しない場合,このコーディングは必要ありません。
    論理端末名称決定UOCは,HSC2手順(非同期モード)の場合だけ使用できます。
  5. スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

図8-3 MCFメイン関数のディレクトリへの組み込み方法

[図データ]

注※1
HSC1手順の場合はmcfplhs1コマンド,HSC2手順の場合はmcfplhs2コマンドでリンケージします。
注※2
TP1/NET/HSCの実行形式プログラム名は,先頭がmcfuで始まる8文字以内の名称にしてください。