本文整理汇总了C++中ModuleSubSystem::retrieve_module方法的典型用法代码示例。如果您正苦于以下问题:C++ ModuleSubSystem::retrieve_module方法的具体用法?C++ ModuleSubSystem::retrieve_module怎么用?C++ ModuleSubSystem::retrieve_module使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleSubSystem
的用法示例。
在下文中一共展示了ModuleSubSystem::retrieve_module方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get_location
String ErrorSubSystem::get_location(const SuifObject *obj) const {
if (obj == NULL) return emptyString;
LString style = get_default_location_module();
if (style == emptyLString) {
return(obj->getClassName());
}
ModuleSubSystem *ms = get_suif_env()->get_module_subsystem();
Module *module = ms->retrieve_module(style);
LString location_iface = "get_object_location";
if (!module->supports_interface(location_iface))
{
return(obj->getClassName());
}
LocationDispatch pfunc =
(LocationDispatch)module->get_interface(location_iface);
//TODO:
#ifdef MSVC
if((int)pfunc==0x1)pfunc=NULL;
#endif
if (pfunc)
{
return ((*pfunc)(obj).print_to_string());
}
else
{
// cerr << "installed location style"
// << style.c_str() << "has no valid print function" << endl;
return(obj->getClassName());
}
}
示例2: to_cstring
String to_cstring(const SuifObject *obj) {
if (obj == NULL) return("(nil)");
SuifEnv* suif_env = obj->get_suif_env();
ModuleSubSystem *ms = suif_env->get_module_subsystem();
CPrintStyleModule* cprint = (CPrintStyleModule*)
ms->retrieve_module("cprint");
suif_assert_message(cprint, ("CPrintStyleModule is not loaded"));
return cprint->print_to_string(obj);
}
示例3: CPrintStyleModule
extern "C" void EXPORT init_print_styles(SuifEnv* suif)
{
suif->require_module("basicnodes");
suif->require_module("suifnodes");
ModuleSubSystem* mSubSystem = suif->get_module_subsystem();
if (!mSubSystem->retrieve_module(CPrintStyleModule::get_class_name())) {
Module *m = new CPrintStyleModule(suif);
mSubSystem -> register_module(m);
//suif->get_print_subsystem()->set_default_print_style(m->get_module_name());
}
}
示例4:
extern "C" void init_s2c(SuifEnv *suif_env) {
suif_env->require_module("suifnodes");
suif_env->require_module("cfenodes");
suif_env->require_module("suifpasses");
ModuleSubSystem* mSubSystem = suif_env->get_module_subsystem();
if (!mSubSystem->retrieve_module("s2c")) {
mSubSystem -> register_module( new S2CPass( suif_env ) );
}
}
示例5: SuifPrinterModule
//----------------------------------------------------------------------------
extern "C" void EXPORT init_suifprinter(SuifEnv* suif)
{
suif->require_module("suifpasses");
// These are needed by the cprint style
suif->require_module("basicnodes");
suif->require_module("suifnodes");
ModuleSubSystem* mSubSystem = suif->get_module_subsystem();
if (!mSubSystem->retrieve_module(SuifPrinterModule::ClassName)) {
Module *m = new SuifPrinterModule(suif);
mSubSystem -> register_module(m);
suif->get_print_subsystem()->set_default_print_style(m->get_module_name());
m = new CPrintStyleModule(suif);
mSubSystem -> register_module(m);
init_suifprinter_extras(suif);
m = new IdPrinter(suif);
mSubSystem -> register_module(m);
m = new MCPrintStyleModule(suif);
mSubSystem -> register_module(m);
}
}