[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/Signal.h>
#include <esignal/Interface.h> #include <esignal/Interface.h>
#undef __class__
#define __class__ "ISignal<T_ARGS>"
namespace esignal { namespace esignal {
/** /**
* @brief Sigla same as @ref esignal::Signal withe a name and a description to manage a list of signals. * @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 <utility>
#include <mutex> #include <mutex>
#undef __class__
#define __class__ "Signal<T_ARGS>"
namespace esignal { namespace esignal {
/** /**
* @brief Basic signal base * @brief Basic signal base
@ -169,12 +172,14 @@ namespace esignal {
template<class... T_ARGS> template<class... T_ARGS>
template< class OBSERVER_TYPE > template< class OBSERVER_TYPE >
esignal::Connection esignal::Signal<T_ARGS...>::connect(OBSERVER_TYPE&& _observer ) { 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::unique_ptr<Executor> executer(new Executor(std::forward<OBSERVER_TYPE>(_observer)));
std::size_t uid = executer->m_uid; std::size_t uid = executer->m_uid;
m_executors.push_back(std::move(executer)); m_executors.push_back(std::move(executer));
if (m_connectionObserver!=nullptr) { if (m_connectionObserver!=nullptr) {
m_connectionObserver(m_executors.size()); m_connectionObserver(m_executors.size());
} }
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
return esignal::Connection(Base::m_shared, uid); 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, esignal::Connection esignal::Signal<T_ARGS...>::connect(CLASS_TYPE* _class,
FUNC_TYPE _func, FUNC_TYPE _func,
FUNC_ARGS_TYPE... _arg) { FUNC_ARGS_TYPE... _arg) {
ESIGNAL_DEBUG("esignal: '" << getName() << "' try connect: '" << getName() << "' (reference)");
if (_class == nullptr) { if (_class == nullptr) {
// ERROR ESIGNAL_ERROR(" '" << getName() << "' Class pointer in nullptr");
return esignal::Connection(); return esignal::Connection();
} }
std::unique_ptr<Executor> executer(new Executor([=](const T_ARGS& ... _argBase){ 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; std::size_t uid = executer->m_uid;
m_executors.push_back(std::move(executer)); m_executors.push_back(std::move(executer));
if (m_connectionObserver!=nullptr) { if (m_connectionObserver != nullptr) {
m_connectionObserver(m_executors.size()); m_connectionObserver(m_executors.size());
} }
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
return Connection(Base::m_shared, uid); 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 esignal::Signal<T_ARGS...>::connect(const std::shared_ptr<PARENT_CLASS_TYPE>& _class,
void (CLASS_TYPE::*_func)(const T_ARGS&..., FUNC_ARGS_TYPE...), void (CLASS_TYPE::*_func)(const T_ARGS&..., FUNC_ARGS_TYPE...),
FUNC_ARGS_TYPE... _args) { FUNC_ARGS_TYPE... _args) {
ESIGNAL_DEBUG("esignal: '" << getName() << "' try connect: '" << getName() << "' (weak pointer)");
if (_class == nullptr) { if (_class == nullptr) {
// ERROR ESIGNAL_ERROR(" '" << getName() << "' Class pointer in nullptr");
return; return;
} }
std::shared_ptr<CLASS_TYPE> obj2 = std::dynamic_pointer_cast<CLASS_TYPE>(_class); std::shared_ptr<CLASS_TYPE> obj2 = std::dynamic_pointer_cast<CLASS_TYPE>(_class);
if (obj2 == nullptr) { if (obj2 == nullptr) {
ESIGNAL_ERROR("Can not bind signal ..."); ESIGNAL_ERROR("Can not connect signal ...");
return; return;
} }
CLASS_TYPE* directPointer = obj2.get(); 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) { if (m_connectionObserver!=nullptr) {
m_connectionObserver(m_executors.size()); m_connectionObserver(m_executors.size());
} }
ESIGNAL_DEBUG(" '" << getName() << "' new count: " << m_executors.size());
} }
template<class... T_ARGS> template<class... T_ARGS>
@ -232,3 +241,5 @@ esignal::Signal<T_ARGS...>::Signal(CLASS_TYPE* _class,
// nothing to do // nothing to do
} }
#undef __class__
#define __class__ nullptr

View File

@ -10,6 +10,9 @@
#include <esignal/ISignal.h> #include <esignal/ISignal.h>
#include <esignal/details/Signal.hxx> #include <esignal/details/Signal.hxx>
#undef __class__
#define __class__ "ISignal<T_ARGS>"
template<class... T_ARGS> template<class... T_ARGS>
esignal::ISignal<T_ARGS...>::ISignal(esignal::Interface* _signalInterfaceLink, esignal::ISignal<T_ARGS...>::ISignal(esignal::Interface* _signalInterfaceLink,
const std::string& _name, const std::string& _name,
@ -40,4 +43,6 @@ const std::string& esignal::ISignal<T_ARGS...>::getDescription() const {
return m_description; 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 #endif
// TODO : Add protection ... but how ... // TODO : Add protection ... but how ...
m_callInProgress++; 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) { for (size_t iii=0; iii < m_executors.size(); ++iii) {
ESIGNAL_VERBOSE(esignal::logIndent(m_callInProgress-1) << " {" << tmpID << "} : " << iii);
m_executors[iii]->emit(_args...); m_executors[iii]->emit(_args...);
} }
if (m_callInProgress == 1) { if (m_callInProgress == 1) {
@ -181,4 +182,7 @@ bool esignal::Signal<T_ARGS...>::ExecutorShared::isSharedPtr(const std::shared_p
return false; return false;
} }
#undef __class__
#define __class__ nullptr