- Fixed bug with `directMessage(string, string[])` when more than one user in a multi-case was passed in
Unit tests
- Added two more unit tests relating to direct messages
- Namely testing out two scenarios for `directMessage(string, string[])`
- Added missing `dur` import
Sender
- Added missing `dur` import
Exceptions
- Moved exceptions to its own module
Core/Client
- Renamed to `client`
Package
- Updated import for `client` module
- Added import of `BirchwoodException`
- Added import of `ConnectionInfo`
Conninfo
- Moved `ConnectionInfo` to its own module
- Fixed bug whereby the leaving of multiple channels broke after the first channel in `leaveChannel(string[])`
Unit tests
- Test leaving multiple channels, a single channel (singular) and a single channel (multi)
- Test `directMessage(string, string)` (so singular) to send to myself
- Adding such a test will test the direct message receive handler which helps us a lot in increasing code coverage
- Fixed bug in `channelMessage(string, string[])` in the case where multiple channels were specified then the message would fail to send to the channels after the first one specified
Unit tests
- Disabled using `command(string, string, string)` to join a channel, rather use `joinChannel(string)`
- Added tests for singular `channelMessage(string, string[])` and multiple `channelMessage(string, string[])`
- Added imports
- Added a receive queue with a corresponding mutex
- Added a field to hold the associated `Client` object
Send
- Added imports
- Added a send queue with a corresponding mutex
- Added a field to hold the associated `Client` object
- Fixed bug within `channelMessage(string,string[])` which would leave the channel provided instead of sending the message provided to the the channel provided as it called `leaveChannel(channel[0])` instead of `channelMessage(string, string)`
- Added a field of type `Event` to hold a libsnooze object representing when a new message has been received and is to be processed
Sender
- Added a field of type `Event` to hold a libsnooze object representing when a new message is to be sent and is to be processed
- Disagnosed hot-loop causing high load average (and wasting run queue time with meaningless work)
- Offending functions are `sendHandlerFunc()` and `recvHandlerFunc()` and NOT eventy (as latest version doesn't do that
- command(Message) - Let the user isssue a generic command
- joinChannel(string) - join the given channel
- When a numeric reply is received a Reply struct is now created containing a boolean indicating if there is an error, the ReplyType (as per the RFC) and the "params" (as a string), this is done via overriding the `onCommandReply(Reply)` method
- Added onGenericCommand(Message) - for when it doesn't have a special handler and is not a numeric reply (command response)
- Added special handler for private messages and channel messages (not used yet)
- WIP: PrivMesg handling
New types:
- Reply - response struct type
- ReplyType - the numeric response number
- Renamed Message fields
- Moved encode() and decode() into Message as static methods