2017-10-26 17 views
1

OmNET ++シミュレーションでは、コンストラクタに渡される文字列に基づいてC++でモジュールを動的に作成する必要があります。このような文字列が解析され、その後、(すでにNEDファイルとして存在)のモジュールが作成されます。OmNET ++はNEDモジュールがインタフェースを実装しているかどうかを動的にチェックします

cModuleType* mwType = cModuleType::get(mwName); 
cModule* middleware = mwType->create(mwName, this); 

しかし、私はまた、で定義されている特定のmoduleinterfaceを、実装するモジュールを作成したいですNEDファイル、すなわち、私はsimple MyModule like MyInterface {...}として定義されたモジュールを作成し、他のすべての例外をスローしたいだけです。 OmNET ++でこの状態をチェックする方法はありますか?シンプルなモジュールクラスはmoduleinterfaceという名前MyInterfaceを実装しているかどうか

答えて

0

あなたは、以下の方法を使用してチェックすることができます。

cModuleType *mwType = cModuleType::get(mwName); 
std::string desc = mwType->str(); 
const std::string interfaceName = "MyInterface"; 
if (desc.find(interfaceName) != std::string::npos) { 
    EV << mwName << " implements " << interfaceName << endl; 
    cModule* middleware = mwType->create(mwName, this); 
    // ... 
} else { 
    EV << mwName << " does not implement " << interfaceName << endl; 
} 
+0

作品を魔法のように、ありがとうございました! – Huljar

関連する問題