[Documentation] [TitleIndex] [WordIndex


This is a light version of ecl_sigslots and provides a very ruthlessly simple signals and slots mechanisms useful for *very* embedded development. Differences from ecl_sigslots:

This is a bit of a vague statement on its own. In essence, its usually important to make sure your signals and slots finish processing any currently executing slots before they self destruct. Most sigslot implementations dont do this, ecl_sigslots does, but ecl_sigslots_lite does not. If you have a monolothic program with a single thread, this probably doesn't matter, but if not, then you must take care to ensure signals and slots close appropriately.

Adding disconnect capability adds alot of complexity to the sigslots implementation. Lite sigslots assume that signals and slots connections, once fixed, stay until the signal goes out of scope.

This is often verboten with various embedded compilers and introduces alot of system overhead. Lite sigslots allocates memory up front and will not permit overuse thereafter.

While utilising things like standard error flag constructors (from ecl_errors) might be convenient, this package is and likely will often be used standalone in a firmware project. As a result, its designed with its own internal mechanisms (e.g. error class) so it's source can be simply copied to a firmware project.

Compiling & Linking

   1 #include <ecl/sigslots_lite.hpp>
   3 // Signals
   4 using ecl::lite::Signal;
   6 // Functions
   7 using ecl::lite::connect
   8 using ecl::lite::global_slots_stored;
   9 using ecl::lite::global_slots_capacity;
  10 using ecl::lite::member_slots_stored;
  11 using ecl::lite::member_slots_capacity;


2024-07-06 13:13