33#ifndef __H__UG_BRIDGE__REGISTRY__
34#define __H__UG_BRIDGE__REGISTRY__
83 const std::string&
name()
const {
return m_name;}
87 {m_classes.push_back(c); m_classTags.push_back(tag);}
93 bool empty()
const {
return num_classes() == 0;}
146 void set_force_construct_via_smart_pointer(
bool bForceConstructionWithSmartPtr);
156 bool registry_changed();
178 template<
typename TFunc>
179 Registry& add_function(std::string funcName, TFunc
func, std::string group =
"",
180 std::string retValInfos =
"", std::string paramInfos =
"",
181 std::string tooltip =
"", std::string help =
"");
184 template<
typename TFunc>
186 add_and_get_function(std::string funcName, TFunc
func, std::string group =
"",
187 std::string retValInfos =
"", std::string paramInfos =
"",
188 std::string tooltip =
"", std::string help =
"");
191 size_t num_functions()
const;
198 size_t num_overloads(
size_t ind)
const;
219 template <
typename TClass>
221 std::string group =
"",
222 std::string tooltip =
"");
230 template <
typename TClass,
typename TBaseClass>
232 std::string group =
"",
233 std::string tooltip =
"");
241 template <
typename TClass,
typename TBaseClass1,
typename TBaseClass2>
243 std::string group =
"",
244 std::string tooltip =
"");
247 template <
typename TClass>
251 size_t num_classes()
const;
263 bool check_consistency();
271 size_t num_class_groups()
const;
291 void add_class_to_group(std::string className, std::string groupName,
292 std::string classTag =
"");
296 bool classname_registered(
const std::string&
name);
299 bool groupname_registered(
const std::string&
name);
302 bool functionname_registered(
const std::string&
name);
306 template <
typename TClass,
typename TBaseClass>
307 void check_base_class(
const std::string& className);
location name
Definition checkpoint_util.lua:128
groups classes. One of the members is the default member.
Definition registry.h:75
ClassGroupDesc()
Definition registry.h:77
void add_class(IExportedClass *c, const std::string &tag)
adds a class to group
Definition registry.h:86
void set_default_class(size_t i)
sets the i'th class as default
Definition registry.h:105
size_t num_classes() const
returns number of classes in group
Definition registry.h:90
IExportedClass * m_defaultClass
the current default class
Definition registry.h:121
IExportedClass * get_default_class() const
if no default class is set, this method returns NULL.
Definition registry.h:108
std::vector< std::string > m_classTags
tags can be used to describe classes. One tag for each class.
Definition registry.h:118
const std::string & get_class_tag(size_t i) const
returns the class group tag for a class
Definition registry.h:102
void set_name(const std::string &name)
sets name of group
Definition registry.h:80
std::string m_name
name of class group
Definition registry.h:112
bool empty() const
returns if classes in group
Definition registry.h:93
std::vector< IExportedClass * > m_classes
classes registered to the class group
Definition registry.h:115
const IExportedClass * get_class(size_t i) const
returns a class of the group
Definition registry.h:99
const std::string & name() const
returns name of group
Definition registry.h:83
IExportedClass * get_class(size_t i)
returns a class of the group
Definition registry.h:96
This template class represents real c++ classes in the registry.
Definition class.h:702
Groups of Functions - useful to realize overloaded functions.
Definition global_function.h:243
This class describes a wrapper for a c++ - function, that is exported by ug.
Definition global_function.h:186
Base class for exported Classes.
Definition class.h:502
Registry for functions and classes that are exported to scripts and visualizations.
Definition registry.h:137
std::vector< ClassGroupDesc * > m_vClassGroups
registered class groups
Definition registry.h:320
std::vector< ExportedFunctionGroup * > m_vFunction
registered functions
Definition registry.h:314
std::vector< FuncRegistryChanged > m_callbacksRegChanged
Callback, that are called when registry changed is invoked.
Definition registry.h:323
std::vector< IExportedClass * > m_vClass
registered classes
Definition registry.h:317
bool m_bForceConstructionWithSmartPtr
flag if classes must be constructed via smart-pointer
Definition registry.h:326
std::function< void(Registry *pReg)> FuncRegistryChanged
declaration of registry callback function.
Definition registry.h:70
#define UG_API
Definition ug_config.h:65
function func(x, y, z, t, si)