gpt4 book ai didi

c++ - OmNET++ 动态检查 NED 模块是否实现接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:17 25 4
gpt4 key购买 nike

在 OmNET++ 模拟中,我需要根据传递给构造函数的字符串在 C++ 中动态创建模块。解析字符串,然后像这样创建模块(已经作为 NED 文件存在):

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

但是,我只想创建实现某个 moduleinterface 的模块,它也在 NED 文件中定义,即我只想创建定义为 simple MyModule 的模块,如 MyInterface {...} 并为所有其他人抛出异常。有没有办法在 OmNET++ 中检查这种情况?

最佳答案

您可以使用以下方式检查一个简单的模块类是否实现了名为MyInterfacemoduleinterface:

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;
}

关于c++ - OmNET++ 动态检查 NED 模块是否实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com