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:firstname.lastname@example.org/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.
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.