#include "Plugin.h"
#include <dpl/exception.h>
-namespace WrtPluginsApi
-{
-
+namespace WrtPluginsApi {
typedef std::list<Plugin*> PluginsList;
typedef std::shared_ptr<PluginsList> PluginsListPtr;
typedef std::map< std::string, PluginsListPtr> PluginsSet;
class PluginRegistry : public SignalsSupport
{
-public:
+ public:
DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
DECLARE_EXCEPTION_TYPE(Base, PluginNotFound)
- template <typename T, typename ...Args>
- void Call(Args... args)
+ template <typename T, typename ... Args>
+ void Call(Args ... args)
{
- Invoke<T>(args...);
+ Invoke<T>(args ...);
}
- template <typename T, typename ...Args>
+ template <typename T, typename ... Args>
void CallGroup(const typename CallbackSupport<T>::GroupType& type,
- Args... args)
+ Args ... args)
{
- InvokeGroup<T>(type, args...);
+ InvokeGroup<T>(type, args ...);
}
void AddPlugin(const std::string& libraryName, Plugin& plugin);
void UnloadAll();
~PluginRegistry();
-private:
+
+ private:
bool LoadFromFile(const std::string& libraryName);
typedef void* Symbol;
};
typedef std::shared_ptr<PluginRegistry> PluginRegistryPtr;
-
}
#endif