/* * Simple な Sample (TransparentRPC 版) * * +-------------+ +-------------+ +-------------+ * | | | | | | * | tTask | sTaskBody | tSimple | sSample | tSample | * | Task |-----------|> Simple |==========|> Sample | * | |cTask eBody| |cCall eEnt| | * | |Body | | | | * +-------------+ +-------------+ +-------------+ * * * SimpleSample/SimpleSample.cdl を参照 * * この例では Transparent プラグインが指定される。以下の※を参照 * * Tranceparent プラグインのため tSysLog, rpc, tDataqueOWChannel を import */ // cygwin 用の簡易な型定義 import( ); // TECS 対応 TOPPERS/ASP ならば import( ); に相当する // tSysLog の定義 import( ); // SysLog の定義 (RPC のエラーメッセージ出力) cell tSysLog SysLog { }; // RPC 関連のセルタイプの定義 import( ); // Transparent RPC に用いる Dataqueue OneWay チャンネルセルタイプの定義 import( ); // シグニチャ sSample signature sSample { ER sayHello( [in]int32_t times ); ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len ); }; // セルタイプ tSample celltype tSample { entry sSample eEnt; }; // セルタイプ tSimple celltype tSimple { call sSample cCall; entry sTaskBody eBody; }; // セル Sample cell tSample Sample { }; // セル Simple cell tSimple Simple { [through(RPCPlugin,"")] // <<< ※ この行を挿入 cCall = Sample.eEnt; }; // セル Task cell tTask Task { cBody = Simple.eBody; priority = 11; stackSize = 1024; taskAttribute = C_EXP( "TA_ACT" ); };