[DEV] update logs

This commit is contained in:
Edouard DUPIN 2016-03-10 21:23:20 +01:00
parent 000be3f640
commit 115506ff9b
4 changed files with 31 additions and 5 deletions

View File

@ -14,6 +14,9 @@
#include <esignal/Signal.h>
#include <esignal/Interface.h>
#undef __class__
#define __class__ "ISignal<T_ARGS>"
namespace esignal {
/**
* @brief Sigla same as @ref esignal::Signal withe a name and a description to manage a list of signals.
@ -65,3 +68,6 @@ esignal::ISignal<T_ARGS...>::ISignal(CLASS_TYPE* _class,
}
}
#undef __class__
#define __class__ nullptr

View File

@ -19,6 +19,9 @@
#include <utility>
#include <mutex>
#undef __class__
#define __class__ "Signal<T_ARGS>"
namespace esignal {
/**
* @brief Basic signal base
@ -169,12 +172,14 @@ namespace esignal {
template<class... T_ARGS>
template< class OBSERVER_TYPE >
esignal::Connection esignal::Signal<T_ARGS...>::connect(OBSERVER_TYPE&& _observer ) {
ESIGNAL_DEBUG("esignal: '" << getName() << "' try connect: '" << getName() << "' (observer)");
std::unique_ptr<Executor> executer(new Executor(std::forward<OBSERVER_TYPE>(_observer)));
std::size_t uid = executer->m_uid;
m_executors.push_back(std::move(executer));
if (m_connectionObserver!=nullptr) {
m_connectionObserver(m_executors.size());
}
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
return esignal::Connection(Base::m_shared, uid);
}
@ -183,8 +188,9 @@ template<class CLASS_TYPE, class FUNC_TYPE, class... FUNC_ARGS_TYPE>
esignal::Connection esignal::Signal<T_ARGS...>::connect(CLASS_TYPE* _class,
FUNC_TYPE _func,
FUNC_ARGS_TYPE... _arg) {
ESIGNAL_DEBUG("esignal: '" << getName() << "' try connect: '" << getName() << "' (reference)");
if (_class == nullptr) {
// ERROR
ESIGNAL_ERROR(" '" << getName() << "' Class pointer in nullptr");
return esignal::Connection();
}
std::unique_ptr<Executor> executer(new Executor([=](const T_ARGS& ... _argBase){
@ -192,9 +198,10 @@ esignal::Connection esignal::Signal<T_ARGS...>::connect(CLASS_TYPE* _class,
}));
std::size_t uid = executer->m_uid;
m_executors.push_back(std::move(executer));
if (m_connectionObserver!=nullptr) {
if (m_connectionObserver != nullptr) {
m_connectionObserver(m_executors.size());
}
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
return Connection(Base::m_shared, uid);
}
@ -203,13 +210,14 @@ template<class PARENT_CLASS_TYPE, class CLASS_TYPE, typename... FUNC_ARGS_TYPE>
void esignal::Signal<T_ARGS...>::connect(const std::shared_ptr<PARENT_CLASS_TYPE>& _class,
void (CLASS_TYPE::*_func)(const T_ARGS&..., FUNC_ARGS_TYPE...),
FUNC_ARGS_TYPE... _args) {
ESIGNAL_DEBUG("esignal: '" << getName() << "' try connect: '" << getName() << "' (weak pointer)");
if (_class == nullptr) {
// ERROR
ESIGNAL_ERROR(" '" << getName() << "' Class pointer in nullptr");
return;
}
std::shared_ptr<CLASS_TYPE> obj2 = std::dynamic_pointer_cast<CLASS_TYPE>(_class);
if (obj2 == nullptr) {
ESIGNAL_ERROR("Can not bind signal ...");
ESIGNAL_ERROR("Can not connect signal ...");
return;
}
CLASS_TYPE* directPointer = obj2.get();
@ -221,6 +229,7 @@ void esignal::Signal<T_ARGS...>::connect(const std::shared_ptr<PARENT_CLASS_TYPE
if (m_connectionObserver!=nullptr) {
m_connectionObserver(m_executors.size());
}
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
}
template<class... T_ARGS>
@ -232,3 +241,5 @@ esignal::Signal<T_ARGS...>::Signal(CLASS_TYPE* _class,
// nothing to do
}
#undef __class__
#define __class__ nullptr

View File

@ -10,6 +10,9 @@
#include <esignal/ISignal.h>
#include <esignal/details/Signal.hxx>
#undef __class__
#define __class__ "ISignal<T_ARGS>"
template<class... T_ARGS>
esignal::ISignal<T_ARGS...>::ISignal(esignal::Interface* _signalInterfaceLink,
const std::string& _name,
@ -40,4 +43,6 @@ const std::string& esignal::ISignal<T_ARGS...>::getDescription() const {
return m_description;
}
#undef __class__
#define __class__ nullptr

View File

@ -28,8 +28,9 @@ void esignal::Signal<T_ARGS...>::emit(const T_ARGS&... _args) {
#endif
// TODO : Add protection ... but how ...
m_callInProgress++;
ESIGNAL_DEBUG(esignal::logIndent(m_callInProgress-1) << " signal{" << tmpID << "} :");
ESIGNAL_DEBUG(esignal::logIndent(m_callInProgress-1) << " signal{" << tmpID << "} : '" << getName() << "' ***/" << m_executors.size());
for (size_t iii=0; iii < m_executors.size(); ++iii) {
ESIGNAL_VERBOSE(esignal::logIndent(m_callInProgress-1) << " {" << tmpID << "} : " << iii);
m_executors[iii]->emit(_args...);
}
if (m_callInProgress == 1) {
@ -181,4 +182,7 @@ bool esignal::Signal<T_ARGS...>::ExecutorShared::isSharedPtr(const std::shared_p
return false;
}
#undef __class__
#define __class__ nullptr