Function loading component of a callback system. More...
#include <slot.hpp>
Public Member Functions | |
void | connect (const std::string &topic) |
Make a connection to the specified topic. | |
const std::set< std::string > & | connections () |
Lists the topics this slot is connected to. | |
void | disconnect () |
Disconnect the slot from all topics. | |
Slot (void(*f)(Data)) | |
Load with a global/static function. | |
Slot (void(*f)(Data), const std::string &topic) | |
Load with a global/static function and connect. | |
template<typename C > | |
Slot (void(C::*f)(Data), C &c) | |
Load with a member function. | |
template<typename C > | |
Slot (void(C::*f)(Data), C &c, const std::string &topic) | |
Load with a member function and connect. | |
Slot (const Slot &slot) | |
Copy constructor. | |
~Slot () | |
Default destructor. | |
Private Attributes | |
SigSlot< Data > * | sigslot |
Function loading component of a callback system.
Anywhere that a callback is required can be implemented with a slot. These can be placed anywhere in your code and are initialised with either a free (static or global) function, or a member function. Once initialised, they can be hooked up to a signal.
Usage examples are provided in the main page's documentation for this package.
ecl::Slot< Data >::Slot | ( | void(*)(Data) | f, |
const std::string & | topic | ||
) | [inline] |
Load with a global/static function and connect.
Note that the function must have exactly one argument and it must be of the same type as the slot. It also must return void.
It additionally connects to the specified topic rapi style.
f | : the global/static function. |
topic | : the slot topic name to connect to. |
ecl::Slot< Data >::Slot | ( | void(C::*)(Data) | f, |
C & | c, | ||
const std::string & | topic | ||
) | [inline] |
Load with a member function and connect.
Note that the function must have exactly one argument and it must be of the same type as the slot. It also must return void.
It additionally connects to the specified topic rapi style.
f | : the member function. |
c | : the class instance. |
topic | : the slot topic name to connect to. |
Copy constructor.
This is specially designed so that copying a slot is perfectly acceptable. Copies do not increase the number of callbacks that are fired - they just preserve the slot when used with things like stl containers. When the last copy disappears, the object destroys its connection automagically.
slot | : the object to be copied. |
const std::set<std::string>& ecl::Slot< Data >::connections | ( | ) | [inline] |
void ecl::Slot< Data >::disconnect | ( | ) | [inline] |