16 #include "../../include/ecl/sigslots_lite.hpp"    30         void f(
const char* str) {
    31                 std::cout << 
"Foo::f() " << str << std::endl;
    34                 std::cout << 
"Foo::h()" << std::endl;
    38 void f(
const char* str) {
    39         std::cout << 
"f(char*) " << str << std::endl;
    42 void g(
const char* str) {
    43         std::cout << 
"g(char*) " << str << std::endl;
    47         std::cout << 
"h()" << std::endl;
    68 int main(
int argc, 
char **argv) {
    72     std::cout << std::endl;
    73     std::cout << 
"***********************************************************" << std::endl;
    74     std::cout << 
"                   Data Sigslots" << std::endl;
    75     std::cout << 
"***********************************************************" << std::endl;
    76     std::cout << std::endl;
    83         dual_slot_signal.
emit(
"one signal, two global slots");
    84         std::cout << std::endl;
    87         lone_signal1.
emit(
"direct member slot connection");
    88         std::cout << std::endl;
    91         lone_signal1.
emit(
"multiple signals, one slot connection - I");
    92         lone_signal2.
emit(
"multiple signals, one slot connection - II");
    93         std::cout << std::endl;
    95     std::cout << std::endl;
    96     std::cout << 
"***********************************************************" << std::endl;
    97     std::cout << 
"                   Void Sigslots" << std::endl;
    98     std::cout << 
"***********************************************************" << std::endl;
    99     std::cout << std::endl;
   102         connect(member_void_signal,&Foo::h, foo);
   105         member_void_signal.
emit();
   107     std::cout << std::endl;
   108     std::cout << 
"***********************************************************" << std::endl;
   109     std::cout << 
"                   Storage" << std::endl;
   110     std::cout << 
"***********************************************************" << std::endl;
   111     std::cout << std::endl;
   113         std::cout << 
"GlobalSlots<const char*> Stored  : " << ecl::lite::global_slots_stored<const char*>() << std::endl;
   114     std::cout << 
"GlobalSlots<const char*> Capacity: " << ecl::lite::global_slots_capacity<const char*>() << std::endl;
   115     std::cout << std::endl;
   116         std::cout << 
"GlobalSlots<void> Stored  : " << ecl::lite::global_slots_stored<void>() << std::endl;
   117     std::cout << 
"GlobalSlots<void> Capacity: " << ecl::lite::global_slots_capacity<void>() << std::endl;
   118     std::cout << std::endl;
   120         std::cout << 
"MemberSlots<const char*> Stored(foo)  : " << ecl::lite::member_slots_stored<const char*>(foo) << std::endl;
   121     std::cout << 
"MemberSlots<const char*> Capacity(Foo): " << ecl::lite::member_slots_capacity<const char*>(foo) << std::endl;
   122     std::cout << std::endl;
   123         std::cout << 
"MemberSlots<void> Stored(foo)  : " << ecl::lite::member_slots_stored<void>(foo) << std::endl;
   124     std::cout << 
"MemberSlots<void> Capacity(Foo): " << ecl::lite::member_slots_capacity<void>(foo) << std::endl;
   125     std::cout << std::endl;
   128         std::cout << 
"Incrementally adding slots to signal<const char*,2>" << std::endl;
   129         std::cout << 
"  capacity: " << signal_storage_test.
capacity() << std::endl;
   130         std::cout << 
"  stored  : " << signal_storage_test.
stored() << std::endl;
   131         connect(signal_storage_test,f);
   132         std::cout << 
"  stored  : " << signal_storage_test.
stored() << std::endl;
   133         connect(signal_storage_test,g);
   134         std::cout << 
"  stored  : " << signal_storage_test.
stored() << std::endl;
   135     std::cout << std::endl;
   137     std::cout << std::endl;
   138     std::cout << 
"***********************************************************" << std::endl;
   139     std::cout << 
"                   Error Handling" << std::endl;
   140     std::cout << 
"***********************************************************" << std::endl;
   141     std::cout << std::endl;
   144     std::cout << 
"Adding two slots to a single slot capacity signal." << std::endl;
   146     std::cout << 
"  Connecting a first slot" << std::endl;
   147     error = 
connect(one_shot_signal,f);
   149         std::cout << 
"  " << error.
what() << std::endl;
   151     std::cout << 
"  Connecting a second slot" << std::endl;
   152     error = 
connect(one_shot_signal,f);
   154         std::cout << 
"  " << error.
what() << std::endl;
   156         std::cout << std::endl;
   158     std::cout << 
"Adding two slots to a single slot capacity MemberSlots interface." << std::endl;
   161     std::cout << 
"  Connecting a first slot" << std::endl;
   162     error = 
connect(two_shot_signal, &Foo::f, foo_new); 
   164         std::cout << 
"  " << error.
what() << std::endl;
   166     std::cout << 
"  Connecting a second slot" << std::endl;
   167     error = 
connect(two_shot_signal, &Foo::f, foo_new); 
   169         std::cout << 
"  " << error.
what() << std::endl;
   172     std::cout << std::endl;
   173     std::cout << 
"***********************************************************" << std::endl;
   174     std::cout << 
"                   Passed" << std::endl;
   175     std::cout << 
"***********************************************************" << std::endl;
   176     std::cout << std::endl;
 friend sigslots::Error connect(Signal< Data_, Capacity_ > &signal, void(FunctionClass_::*f)(Data_), FunctionClass_ &o)
unsigned int stored() const
The current number of connections stored. 
This is the global slot interface. 
sigslots::Error connect(Signal< Data, Capacity > &signal, void(FunctionClass::*f)(Data), FunctionClass &o)
Convenience method to connect signal with member function. 
unsigned int capacity() const
The reserved capacity for this signaller. 
virtual sigslots::ErrorFlag flag() const
The flag identifying the error identified with this error handler. 
Extends the generic ecl error handler with some time specific error strings. 
int main(int argc, char **argv)
This is the member slot interface, inheritable by classes. 
virtual const char * what() const
A simple string verbosely representing the error that is handled. 
void emit(Data data) const
Signal slots with the specified data.