[DEV] change API internal signal => signal'S'
This commit is contained in:
parent
c3c833632b
commit
3b41672f37
@ -70,7 +70,7 @@ esignal::ISignal<T_ARGS...>::ISignal(CLASS_TYPE* _class,
|
||||
m_description(_description) {
|
||||
// add a reference on the current signal ...
|
||||
if (m_signalInterfaceLink != nullptr) {
|
||||
m_signalInterfaceLink->signal.add(this);
|
||||
m_signalInterfaceLink->signals.add(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,54 +9,16 @@
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <esignal/InterfaceData.h>
|
||||
|
||||
namespace esignal {
|
||||
class Base;
|
||||
/**
|
||||
* @brief Interface data to collect the Signal list (for abstarction connection)
|
||||
*/
|
||||
class InterfaceData {
|
||||
private:
|
||||
std::vector<esignal::Base*> m_list; //!< list of availlable Parameters
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor.
|
||||
*/
|
||||
InterfaceData();
|
||||
/**
|
||||
* @brief Destructor.
|
||||
*/
|
||||
virtual ~InterfaceData();
|
||||
/**
|
||||
* @brief Register a signal class pointer in the List of signal list
|
||||
* @note This class does not destroy the parameter pointer!!!
|
||||
* @param[in] _pointerOnSignal Pointer on the signal that might be added.
|
||||
*/
|
||||
void add(esignal::Base* _pointerOnSignal);
|
||||
/**
|
||||
* @brief Remove a signal class pointer in the List of signal list
|
||||
* @note This class does not destroy the parameter pointer!!!
|
||||
* @param[in] _pointerOnSignal Pointer on the signal that might be removed.
|
||||
*/
|
||||
void remove(esignal::Base* _pointerOnSignal);
|
||||
/**
|
||||
* @brief Get All the signal list:
|
||||
* @return vector on all the signals names
|
||||
*/
|
||||
std::vector<std::string> getAll() const;
|
||||
/**
|
||||
* @brief Remove binding on all event class.
|
||||
* @param[in] _sharedPtr sharedPtr to unlink (no type needed ...).
|
||||
*/
|
||||
void disconnect(const std::shared_ptr<void>& _sharedPtr);
|
||||
};
|
||||
/**
|
||||
* @brief Interface to collect the Signal list (for abstarction connection)
|
||||
* It create a simple "signal" member that permit to access at the signalproperties.
|
||||
*/
|
||||
class Interface {
|
||||
public:
|
||||
esignal::InterfaceData signal; //!< Interface to access at all signal properties...
|
||||
esignal::InterfaceData signals; //!< Interface to access at all signals properties...
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include <memory>
|
||||
#include <esignal/debug.h>
|
||||
#include <esignal/Interface.h>
|
||||
#include <esignal/InterfaceData.h>
|
||||
#include <esignal/Base.h>
|
||||
|
||||
esignal::InterfaceData::InterfaceData() {
|
54
esignal/InterfaceData.h
Normal file
54
esignal/InterfaceData.h
Normal file
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2016, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license APACHE v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
namespace esignal {
|
||||
class Base;
|
||||
/**
|
||||
* @brief Interface data to collect the Signal list (for abstarction connection)
|
||||
*/
|
||||
class InterfaceData {
|
||||
private:
|
||||
std::vector<esignal::Base*> m_list; //!< list of availlable Parameters
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor.
|
||||
*/
|
||||
InterfaceData();
|
||||
/**
|
||||
* @brief Destructor.
|
||||
*/
|
||||
virtual ~InterfaceData();
|
||||
/**
|
||||
* @brief Register a signal class pointer in the List of signal list
|
||||
* @note This class does not destroy the parameter pointer!!!
|
||||
* @param[in] _pointerOnSignal Pointer on the signal that might be added.
|
||||
*/
|
||||
void add(esignal::Base* _pointerOnSignal);
|
||||
/**
|
||||
* @brief Remove a signal class pointer in the List of signal list
|
||||
* @note This class does not destroy the parameter pointer!!!
|
||||
* @param[in] _pointerOnSignal Pointer on the signal that might be removed.
|
||||
*/
|
||||
void remove(esignal::Base* _pointerOnSignal);
|
||||
/**
|
||||
* @brief Get All the signal list:
|
||||
* @return vector on all the signals names
|
||||
*/
|
||||
std::vector<std::string> getAll() const;
|
||||
/**
|
||||
* @brief Remove binding on all event class.
|
||||
* @param[in] _sharedPtr sharedPtr to unlink (no type needed ...).
|
||||
*/
|
||||
void disconnect(const std::shared_ptr<void>& _sharedPtr);
|
||||
};
|
||||
}
|
||||
|
@ -19,14 +19,14 @@ esignal::ISignal<T_ARGS...>::ISignal(esignal::Interface* _signalInterfaceLink,
|
||||
m_description(_description) {
|
||||
// add a reference on the current signal ...
|
||||
if (m_signalInterfaceLink != nullptr) {
|
||||
m_signalInterfaceLink->signal.add(this);
|
||||
m_signalInterfaceLink->signals.add(this);
|
||||
}
|
||||
}
|
||||
|
||||
template<class... T_ARGS>
|
||||
esignal::ISignal<T_ARGS...>::~ISignal() {
|
||||
if (m_signalInterfaceLink != nullptr) {
|
||||
m_signalInterfaceLink->signal.remove(this);
|
||||
m_signalInterfaceLink->signals.remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ def create(target, module_name):
|
||||
my_module.add_src_file([
|
||||
'esignal/debug.cpp',
|
||||
'esignal/Connection.cpp',
|
||||
'esignal/Interface.cpp',
|
||||
'esignal/InterfaceData.cpp',
|
||||
'esignal/Base.cpp',
|
||||
'esignal/details/LockSharedPtrRef.cpp',
|
||||
'esignal/details/RefCount.cpp',
|
||||
@ -43,6 +43,7 @@ def create(target, module_name):
|
||||
my_module.add_header_file([
|
||||
'esignal/debug.h',
|
||||
'esignal/Interface.h',
|
||||
'esignal/InterfaceData.h',
|
||||
'esignal/Base.h',
|
||||
'esignal/Signal.h',
|
||||
'esignal/ISignal.h',
|
||||
|
@ -103,25 +103,25 @@ TEST(test_isignal_counter, localbasicInterfaceGetListSignal) {
|
||||
list.push_back("int");
|
||||
list.push_back("string");
|
||||
list.push_back("float");
|
||||
EXPECT_EQ(localClass.signal.getAll(), list);
|
||||
EXPECT_EQ(localClass.signals.getAll(), list);
|
||||
}
|
||||
|
||||
TEST(test_isignal_counter, localbasicInterfaceDisconnectNullPtr) {
|
||||
testISignal localClass;
|
||||
localClass.signal.disconnect(nullptr);
|
||||
localClass.signals.disconnect(nullptr);
|
||||
}
|
||||
|
||||
TEST(test_isignal_counter, localbasicInterfaceDisconnectSharedPtr) {
|
||||
testISignal localClass;
|
||||
std::shared_ptr<testCallbackIShared> tmp = std::make_shared<testCallbackIShared>();
|
||||
localClass.signal.disconnect(tmp);
|
||||
localClass.signals.disconnect(tmp);
|
||||
EXPECT_EQ(localClass.m_signalInt.size(), 0);
|
||||
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
||||
localClass.m_signalInt.connect(tmp, &testCallbackIShared::callbackConstInt);
|
||||
EXPECT_EQ(localClass.m_signalInt.size(), 1);
|
||||
EXPECT_EQ(localClass.m_signalInt.empty(), false);
|
||||
localClass.m_signalInt.emit(34567);
|
||||
localClass.signal.disconnect(tmp);
|
||||
localClass.signals.disconnect(tmp);
|
||||
EXPECT_EQ(localClass.m_signalInt.size(), 0);
|
||||
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user