Signals and Slots  Signals and Slots

Welcome!

This page is a Fossil source code repository for several different signals/slots implementations for C++. It is mainly an experiment to try out the Fossil source control system. Fossil is still quite young and has a couple bugs and missing features, so don't expect everything on this site to work.

This tree contains several different packages, each arranged in their own subdirectory:

  • stsigslot-classic = an up-to-date/maintained copy of Sarah Thompson's signals and slots library (http://sigslot.sourceforge.net).
  • stsigslot = a refactored copy of stsigslot-classic to remove the numeric suffixes from the classes (but otherwise the same code/architecture). Not nearly as well-tested as the older code and probably not as portable to strange platforms.
  • ptsigslot = A more modern implementation by Dr. Marc Duerner. For full details see http://wanderinghorse.net/computing/ptsigslot/.

Each one is fairly small and has its own list of pros and cons. They are fairly portable (especially ptsigslot) and "should" work on any recent C++ platform.

Downloading this code

There are two options for downloading. The first is to log in as the anonymous use and follow the /leaves link. Then find the top-most entry and click that. From there, you can download a zip file containing the latest checked-in source code. Versions of Fossil older than 8 February 2008 will create a zip which unpacks to the current directory, so be sure to first create and 'cd' to the proper target directory before unzipping.

Optionally, you can use fossil:

~> fossil clone \
   http://anonymous:anonymous@wanderinghorse.net/cgi-bin/fossil-sigslot.cgi \
   sigslot.fsl

(All on one line.)

That will copy the repository to sigslot.fsl, which you can then open with:

~> mkdir sigslot
~> cd sigslot
~> fossil open ../sigslot.fsl

That checks out the files under the current dir. Each sub-project is in its own subdir, typically with a Makefile written for systems running GNU Make and gcc.

Contributing

If you are interesting in contributing to this code, there are several options:

  • Send me a patch or code snippet (need not be in "patch" format if it's easy enough to handle).
  • Get in touch with me and we can get you set up with write access to this repo (requires the Fossil tool).
  • Just send me an idea of what it is you'd like to see changed/fixed/added. Oftentimes a simple suggestion is a great catalyst for a feature.