- Print out the message we are handling in `handle()`
Daemon
- Added some testing, but broken, config reading code
- Enabled debugging in the logger
Stream
- Added a `STREAM`-based listener which produces `SockStream`-based `Connection` objects
- Made `server` field `protected` such that sub-classes can access it
- Added two new abstract methods, `startListener()` for starting the listener and `stopListener()` for stopping it
- INitialize the tristanablwe `Manager` with a default `Queue` to receive all messages into, then pass it to a `handle(TaggedMessage)` method which will process it
- Fixed bug in `addListener(Listener)` whereby the `scope`'d code would never run on exception unwinding as it never appeared before such a `throw` clause
- The `Connection` type is now a kind-of `Thread`
- Added field `associatedServer` of type `Server` such that a connection can be associated with a given server
- Added field `clientSocket` such that a connection can associate the socket with itself
- Constructor sets the two above fields and calls the `Thread` super constructor passing in a function pointer to the worker function (currently a while loop)
- Implemented `Connection newConnection(Server, Socket)` which produces a new `Connection`, then calls `Server.addConnection()` and finally starts the `Connection`'s thread via `start()`, then returns the Connection
- Added a queue of `Listener`(s) and a corresponding lock
- Added a queue of `Connection`(s) and a corresponding lock
- Initialize all queue locks in the constructor
- Added `addListener(Listener)` for adding a new listener; will throw an exception if already added
- `Server` now implements `ConnectionConsumer` and implements an `addConnection(Connection)` method which consumes the provided `Connection` and adds it to the connection queue
- Added new module `errors`
- Added new type `ErrorType` with enum member `LISTENER_ALREADY_ADDED`
Exceptions (package)
- Publically import `errors` (only `ErrorType`) and `RenaissanceException` from `types`
Types
- Added `RenaissanceException` type as the base exception class for the server code
- Added new type which represents any class that can "consume" (or add) a new `Connection` object
Listener
- Updated to now use the `ConnectionConsumer` interface type rather than `Server` directly
Listener (package)
- The package now imports (publically) `consumer` and `listener` modules
- Addex exported single logo as `branding/logo_single.png`
Documentation
- Added a README with the logo, title and tagline
App
- Restructured into a module name `renaissance`