当前位置: 首页>>代码示例>>C++>>正文


C++ Plugin::create方法代码示例

本文整理汇总了C++中Plugin::create方法的典型用法代码示例。如果您正苦于以下问题:C++ Plugin::create方法的具体用法?C++ Plugin::create怎么用?C++ Plugin::create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Plugin的用法示例。


在下文中一共展示了Plugin::create方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init_base

  int init_base(int &argc, char *argv[], Context *context = 0) {
    if (argc < 4) { // invalid number of arguments
      return EXIT_FAILURE;
    }

    // obtain real argc for this plugin and pargv, pargc for _base plugin
    int i = 0;
    for (; i < argc and strcmp(argv[i], "--") != 0; i++);
    char **pargv = argv + i + 1;
    int   pargc = argc - i - 1;
    argc = i;

    string plugin_fn = pargv[0];
    string plugin_fn_name = pargv[1];
    ostringstream plugin_args;
    copy(pargv + 2, pargv + pargc, ostream_iterator<char *>(plugin_args, " "));
//    for (int i = 0; i < pargc; i++) plugin_args;


    _plugin = new Plugin<IInteractiveMtFactory>(plugin_fn, plugin_args.str(), plugin_fn_name);
    if (_plugin == 0) {
      cerr << "Could not create base plugin '" << plugin_fn << "'\n";
      return EXIT_FAILURE;
    }

    _base = _plugin->create(context);
    if (_base == 0) {
      cerr << "Could not create base factory for '" << plugin_fn << "'\n";
      return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
  }
开发者ID:casmacat,项目名称:casmacat-thot-server,代码行数:33,代码来源:imt-engine-max-suffix-len.cpp

示例2:

TEST(PluginFactory, loadPlugins)
{
	PluginFactory* factory = PluginFactory::getInstance();
	EXPECT_NO_THROW(factory->loadPluginsFromFile("./libsampleplugin.so"));
	std::vector<std::string> loadedModules=factory->getRegisteredPluginNames();
	EXPECT_EQ(loadedModules.size(),(unsigned int)2);
	EXPECT_EQ(factory->hasPlugin("TestModule"),true);
	EXPECT_EQ(factory->hasPlugin("TestAlgorithm"),true);
	EXPECT_THROW(factory->getPlugin<Algorithm>("TestModule"),std::string);

	Plugin<Module>* modulePlugin = factory->getPlugin<Module>("TestModule");
	Module* testModule = modulePlugin->create(Configuration::createEmptyDict());
	EXPECT_EQ(testModule->getOutputSize(),(unsigned int)1);
	EXPECT_EQ(testModule->getOutput(0)->getName(),"out");

	Plugin<Algorithm>* algorithmPlugin = factory->getPlugin<Algorithm>("TestAlgorithm");
	Algorithm* testAlgorithm = algorithmPlugin->create(Configuration::createEmptyDict());
	Graph g;
	testAlgorithm->setGraph(g);
	testAlgorithm->execute();
}
开发者ID:matt-komm,项目名称:momenta,代码行数:21,代码来源:test-plugins.cpp


注:本文中的Plugin::create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。