plugin_interface.hpp
Go to the documentation of this file.
80 scan_err << "Plugin interface requires the plugin_main function in plugin \"" << name << "\" to be of the form \"" 81 << demangle(typeid(ret).name()) << " (" << stringifyVariadic(demangle(typeid(args).name())...) << ")\"" << scan_end; 103 typedef const std::map<type_index, void *> &(*initFuncType)(const std::string &, const YAML::Node &, const printer_interface &, Priors::BasePrior &, std::vector<void *> &); 110 const std::map<type_index, void *> &initPlugin(const std::string &type, const std::string &name, const plug_args&... inputs) 120 initFunc = (initFuncType)dlsym(plugin, (std::string("__gambit_plugin_pluginInit_") + details.details.full_string + std::string("__")).c_str()); 121 getFunc = (getFuncType)dlsym(plugin, (std::string("__gambit_plugin_getMember_") + details.details.full_string + std::string("__")).c_str()); 176 auto operator()(args&... params) -> typename find_variadic_type <void (args...), T...>::ret_type 178 static_assert(find_variadic_type <void (args...), T...>::value, "\n\033[00;31;1mPlugin Interface: Entered argument types do not match any of the plugin mains' argument types.\033[00m\n"); 179 return Plugin_Main_Interface_Base<typename find_variadic_type <void (args...), T...>::func_type>::operator()(params...); 184 class Plugin_Interface <ret (args...)> : public Plugin_Interface_Base, public Plugin_Main_Interface_Base<ret (args...)> Plugin_Interface(const std::string &type, const std::string &name, const plug_args &... inputs) Definition: plugin_interface.hpp:169 Variadic utilty functions. mainFuncType main Definition: plugin_interface.hpp:64 YAML::Node operator[](const std::string &key) Definition: plugin_interface.hpp:145 std::string tag Definition: plugin_interface.hpp:102 declaration for scanner module void dummy(T1...) Definition: plugin_interface.hpp:166 const std::map< type_index, void * > & error_map_return() Definition: plugin_interface.hpp:46 Plugin_Interface(const std::string &type, const std::string &name, const plug_args &... inputs) Definition: plugin_interface.hpp:190 void input_variadic_vector(std::vector< void *> &) Inputs a varibadic pack into a vector. Definition: scanner_utils.hpp:226 const std::string stringifyVariadic() Definition: variadic_functions.hpp:316 std::vector< void * > input Definition: plugin_interface.hpp:101 YAML::Node flags Definition: plugin_interface.hpp:100 void * plugin Definition: plugin_interface.hpp:99 Plugin info to be given to the interface class. Definition: plugin_loader.hpp:64 Definition: type_index.hpp:26 printer_interface * printer Definition: plugin_loader.hpp:67 #define scan_err Defined to macros to output errors in the form: scan_err << "error" << scan_end; scan_warn << "warnin... Definition: scanner_utils.hpp:54 YAML::Node node Definition: plugin_loader.hpp:70 int enterMain(const std::string &name, const std::map< type_index, void *> &index_map) Definition: plugin_interface.hpp:69 Utility Functions for the Gambit Scanner. Interface for a ScannerBit plugin. Definition: plugin_interface.hpp:162 Plugin_Details & details Definition: plugin_loader.hpp:66 Plugin_Interface_Base() Definition: plugin_interface.hpp:143 const std::map< type_index, void * > & initPlugin(const std::string &type, const std::string &name, const plug_args &... inputs) Definition: plugin_interface.hpp:110 YAML::Node flags Definition: plugin_loader.hpp:69 initFuncType initFunc Definition: plugin_interface.hpp:105 getFuncType getFunc Definition: plugin_interface.hpp:106 auto operator()(args &... params) -> typename find_variadic_type< void(args...), T... >::ret_type Definition: plugin_interface.hpp:176 ~Plugin_Interface_Base() Definition: plugin_interface.hpp:147 Plugin_Main_Interface_Base() Definition: plugin_interface.hpp:67 Manager class for creating printer objects. Definition: baseprintermanager.hpp:37 Loader singleton class for scanner plugins. std::string demangle(const std::string &in) Demangles gnu c++ name. Definition: scanner_utils.hpp:137 Priors::BasePrior * prior Definition: plugin_loader.hpp:68 EXPORT_SYMBOLS pluginInfo plugin_info Access Functor for plugin info. Definition: plugin_loader.cpp:736 |