シミュレータを使ってシミュレーションを行っているのですが、そのシミュレータのプログラムについての質問です。
このシミュレータでは、処理する内容をシミュレーションイベントとして、シミュレーションエンジンに登録すると、シミュレーションエンジンによってイベントの実行が行われます。
(1)の部分で、コンストラクタ内で自身のポインタを渡し、シミュレーションイベントを実行する時に関数を呼び出しているそうです。
関数ポインタを使って、関数を実行しています。→訂正 関数ポインタは使ってませんでした。失礼しました。
・(2)の部分で、シミュレーションエンジンに呼び出す関数(ReSendMSAckEvent)を登録しています。この時に、値も一緒に渡したいのですが、渡し方がわかりません。
・また、このプログラムの動作もよくわからないので、動きも教えていただければありがたいです。
ご教授お願いいたします。
以下、プログラムです。
どちらも同じクラス内で定義されています。
(1)が定義しているプログラム
(2)が関数を実行するときのプログラム
c++
1 //(1) 2 class ReSendMSAckEvent: public SimulationEvent { 3 public: 4 explicit 5 ReSendMSAckEvent(BundleProtocol* initMsAckPtr) 6 : 7 MsAckPtr(initMsAckPtr) 8 {} 9 10 void ExecuteEvent() 11 { 12 MsAckPtr->SendMSAck(); 13 } 14 15 private: 16 BundleProtocol* MsAckPtr; 17 }; 18 19 20//(2) 21simulationEngineInterfacePtr->ScheduleEvent(new ReSendMSAckEvent(this));
回答3件
あなたの回答
tips
プレビュー