#include <string>
#include <dpl/foreach.h>
-namespace WrtPluginsApi
-{
-
+namespace WrtPluginsApi {
template<typename Sig>
class CallbackSupport
{
-public:
+ public:
typedef typename Sig::Signature SlotSignature;
typedef typename Sig::Type SlotType;
typedef std::string GroupType;
void Connect(const GroupType& group, const SlotType& slot)
{
auto groupIt = m_slots.find(group);
- if (m_slots.end() == groupIt)
- {
+ if (m_slots.end() == groupIt) {
groupIt = m_slots.insert(std::make_pair(group, SlotList())).first;
}
groupIt->second.push_back(slot);
m_slots.erase(group);
}
- template<typename...Args>
- void Invoke(const Args&... args)
+ template<typename ... Args>
+ void Invoke(const Args& ... args)
{
-
FOREACH(groupIt, m_slots)
{
FOREACH(slotIt, groupIt->second)
{
- (*slotIt)(args...);
+ (*slotIt)(args ...);
}
}
}
- template<typename...Args>
- void InvokeGroup(const GroupType& group, const Args&... args)
+ template<typename ... Args>
+ void InvokeGroup(const GroupType& group, const Args& ... args)
{
auto groupIt = m_slots.find(group);
- if (m_slots.end() != groupIt)
- {
- FOREACH (slotIt, groupIt->second)
+ if (m_slots.end() != groupIt) {
+ FOREACH(slotIt, groupIt->second)
{
- (*slotIt)(args...);
+ (*slotIt)(args ...);
}
}
}
-private:
+ private:
std::map<GroupType, SlotList> m_slots;
};
-
}
#endif