[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) {
|
m_description(_description) {
|
||||||
// add a reference on the current signal ...
|
// add a reference on the current signal ...
|
||||||
if (m_signalInterfaceLink != nullptr) {
|
if (m_signalInterfaceLink != nullptr) {
|
||||||
m_signalInterfaceLink->signal.add(this);
|
m_signalInterfaceLink->signals.add(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,54 +9,16 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <esignal/InterfaceData.h>
|
||||||
|
|
||||||
namespace esignal {
|
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)
|
* @brief Interface to collect the Signal list (for abstarction connection)
|
||||||
* It create a simple "signal" member that permit to access at the signalproperties.
|
* It create a simple "signal" member that permit to access at the signalproperties.
|
||||||
*/
|
*/
|
||||||
class Interface {
|
class Interface {
|
||||||
public:
|
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 <memory>
|
||||||
#include <esignal/debug.h>
|
#include <esignal/debug.h>
|
||||||
#include <esignal/Interface.h>
|
#include <esignal/InterfaceData.h>
|
||||||
#include <esignal/Base.h>
|
#include <esignal/Base.h>
|
||||||
|
|
||||||
esignal::InterfaceData::InterfaceData() {
|
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) {
|
m_description(_description) {
|
||||||
// add a reference on the current signal ...
|
// add a reference on the current signal ...
|
||||||
if (m_signalInterfaceLink != nullptr) {
|
if (m_signalInterfaceLink != nullptr) {
|
||||||
m_signalInterfaceLink->signal.add(this);
|
m_signalInterfaceLink->signals.add(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class... T_ARGS>
|
template<class... T_ARGS>
|
||||||
esignal::ISignal<T_ARGS...>::~ISignal() {
|
esignal::ISignal<T_ARGS...>::~ISignal() {
|
||||||
if (m_signalInterfaceLink != nullptr) {
|
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([
|
my_module.add_src_file([
|
||||||
'esignal/debug.cpp',
|
'esignal/debug.cpp',
|
||||||
'esignal/Connection.cpp',
|
'esignal/Connection.cpp',
|
||||||
'esignal/Interface.cpp',
|
'esignal/InterfaceData.cpp',
|
||||||
'esignal/Base.cpp',
|
'esignal/Base.cpp',
|
||||||
'esignal/details/LockSharedPtrRef.cpp',
|
'esignal/details/LockSharedPtrRef.cpp',
|
||||||
'esignal/details/RefCount.cpp',
|
'esignal/details/RefCount.cpp',
|
||||||
@ -43,6 +43,7 @@ def create(target, module_name):
|
|||||||
my_module.add_header_file([
|
my_module.add_header_file([
|
||||||
'esignal/debug.h',
|
'esignal/debug.h',
|
||||||
'esignal/Interface.h',
|
'esignal/Interface.h',
|
||||||
|
'esignal/InterfaceData.h',
|
||||||
'esignal/Base.h',
|
'esignal/Base.h',
|
||||||
'esignal/Signal.h',
|
'esignal/Signal.h',
|
||||||
'esignal/ISignal.h',
|
'esignal/ISignal.h',
|
||||||
|
@ -103,25 +103,25 @@ TEST(test_isignal_counter, localbasicInterfaceGetListSignal) {
|
|||||||
list.push_back("int");
|
list.push_back("int");
|
||||||
list.push_back("string");
|
list.push_back("string");
|
||||||
list.push_back("float");
|
list.push_back("float");
|
||||||
EXPECT_EQ(localClass.signal.getAll(), list);
|
EXPECT_EQ(localClass.signals.getAll(), list);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(test_isignal_counter, localbasicInterfaceDisconnectNullPtr) {
|
TEST(test_isignal_counter, localbasicInterfaceDisconnectNullPtr) {
|
||||||
testISignal localClass;
|
testISignal localClass;
|
||||||
localClass.signal.disconnect(nullptr);
|
localClass.signals.disconnect(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(test_isignal_counter, localbasicInterfaceDisconnectSharedPtr) {
|
TEST(test_isignal_counter, localbasicInterfaceDisconnectSharedPtr) {
|
||||||
testISignal localClass;
|
testISignal localClass;
|
||||||
std::shared_ptr<testCallbackIShared> tmp = std::make_shared<testCallbackIShared>();
|
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.size(), 0);
|
||||||
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
||||||
localClass.m_signalInt.connect(tmp, &testCallbackIShared::callbackConstInt);
|
localClass.m_signalInt.connect(tmp, &testCallbackIShared::callbackConstInt);
|
||||||
EXPECT_EQ(localClass.m_signalInt.size(), 1);
|
EXPECT_EQ(localClass.m_signalInt.size(), 1);
|
||||||
EXPECT_EQ(localClass.m_signalInt.empty(), false);
|
EXPECT_EQ(localClass.m_signalInt.empty(), false);
|
||||||
localClass.m_signalInt.emit(34567);
|
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.size(), 0);
|
||||||
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
EXPECT_EQ(localClass.m_signalInt.empty(), true);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user