1
0
mirror of https://github.com/deavmi/birchwood synced 2024-09-20 15:22:53 +02:00
Commit Graph

342 Commits

Author SHA1 Message Date
supremestdoggo
8c8c226742 Create formatting.d 2023-03-13 14:46:39 -04:00
d27843c842 Client
- When sending a pong back log its pong ID
2023-03-11 15:49:36 +02:00
847949433f
Updated dub package dependencies 2023-03-11 15:22:54 +02:00
1bdc68774f Client
- Fixed a possible bug whereby the `Receiver` and `Sender` may exit on start as they get to their `client.running` read before the main thread gets to setting `running = true`
2023-03-11 15:15:11 +02:00
40e7a3b2b9 Client
- Cleaned up comments
2023-03-11 15:13:18 +02:00
97220b7f99 Client
- Added some missing comments
2023-03-11 15:11:32 +02:00
269aaf0018 Client
- Removed unused import
- Added comment for future work
- Fixed typo

Receiver

- Added commented out code for future work

Sender

- Added commented out code for future work
2023-03-11 15:09:45 +02:00
f30fc6b18c Receiver
- On call to `rq(byte[])` by the `Client` thread wake up the `Receiver` thread
- Added a TODO about the first call to `notifyAll()`
- Added a `wait()` call
- Removed `yield()` calls

Sender

- On call to `sq(byte[])` by the `Client` thread wake up the `Sender` thread
- Added a TODO about the first call to `notifyAll()`
- Added a `wait()` call
- Removed `yield()` calls

Client

- Ensure we wake up the `Receiver` and `Sender` threads such that they don't hang on their calls to `wait()`
- Added a TODO comment
2023-03-10 21:19:14 +02:00
e3bce71df3 - Upgraded libsnooze to version 0.3.0 2023-03-10 19:01:24 +02:00
3e5113f4a1 Client
- Removed unneeded import
2023-03-10 17:26:28 +02:00
e3b2be121b Receiver
- Instead of locking, processing a potential pong and ONE normal message and then unlocking, now we process all messages we have
2023-03-10 17:26:06 +02:00
9d7682bfdb Events
- Moved `IRCEventType`, `IRCEvent` and `PongEvent` to a new module `events`

Client

- Removed old `recvQueue`, `sendQueue`, their respective locks and threads
- Removed any initializations of the aforementioned
- Added calls to start the `ReceiverThread` and `SenderThread` on call to `connect()`
- Updated `disconnect()`, `sendMessage(string)` and `receiveQ(ubyte[])` to use the new `ReceiverThread` and `SenderThread`

Receiver

- Added missing import
2023-03-09 18:36:41 +02:00
d89fe0fd06 Sender
- Added `sq` (send queue append) method

Receive

- Added `rq` (receive queue append) method
2023-03-09 15:47:52 +02:00
b5e1b4065f Client
- Added TODOs

Exceptions

- Added TODO
2023-03-09 15:40:20 +02:00
d75d5407fd Client
- Updated imports
- Moved `IRCEvent`, `IRCEventType` and `PongEvent` outside of the `Client` class
- Made `engine`, `running` and `socket` package-level accessible

Package

- Fixed package for `client`

Main package

- Updated public imports for the `birchwood` package
2023-03-09 15:34:01 +02:00
586b80edbc ConnInfo
- Moved `conninfo` module to its own package `config`
2023-03-09 15:32:17 +02:00
32817d4134 Receiver
- Fixed conflicting symbol name `Event` arising from the use of `Eventy` and `libsnooze`
- Initialize the libsnooze event
- Initialize the queue mutex
- Set the thread's worker function

Sender

- Fixed conflicting symbol name `Event` arising from the use of `Eventy` and `libsnooze`
- Initialize the libsnooze event
- Initialize the queue mutex
- Set the thread's worker function

Protocol

- Moved module `message` to new package `protocol`
- Moved module `constants` to new package `protocol`
2023-03-09 15:31:30 +02:00
a006057c7f Merge branch 'master' into perf_rework 2023-03-09 14:35:27 +02:00
d8908338c5 Client
- 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[])`
2023-03-09 14:34:53 +02:00
50876ff231 Receiver
- 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
2023-03-09 14:27:45 +02:00
8e9790a518 ReceiverThread
- Copied across `recvHandlerFunc()` from `Client`

SenderThread

- Copied across `sendHandlerFunc()` from `Client`
2023-03-09 11:30:51 +02:00
86cc450a37 SenderThread
- Renamed the field `receiveEvent` to `sendEvent`
2023-03-09 11:17:27 +02:00
3e25c70e37 Receiver
- Added a constructor for `ReceiverThread`

Sender

- Added a constructor for `SenderThread`
2023-03-09 11:16:53 +02:00
175138f91e Merge branch 'master' into perf_rework 2023-03-09 11:12:03 +02:00
802fd9823d Client
- 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)
2023-03-09 11:11:44 +02:00
b49c98484c Merge branch 'master' into perf_rework 2023-03-09 08:46:51 +02:00
7a9bc642ea Unit tests
- Corrected comment
2023-03-09 08:46:28 +02:00
8a0961a16c Merge branch 'master' into perf_rework 2023-03-09 08:45:49 +02:00
35ce86478d Unit tests
- 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
2023-03-09 08:44:09 +02:00
5155912bdd Unit tests
- Added a unit test for the (single) `channelMessage(string, string)`
2023-03-09 08:40:42 +02:00
fe91adde0a Client
- 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[])`
2023-03-09 08:37:38 +02:00
a999482fc9 Receiver
- 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
2023-03-08 22:06:23 +02:00
8a9f48a3c7 Unit tests
- Don't use `command()` directly for joining channels but rather `joinChannel(string)`
- Added a test for multiple channel sending
2023-03-08 22:05:42 +02:00
1cd9b6b640 Merge branch 'master' into perf_rework 2023-03-08 20:19:10 +02:00
6f0a9e32ca Client
- 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)`
2023-03-08 20:17:40 +02:00
72d473a5c4 Client
- Added comment to make this `Client` class abstract

Unit tests

- Added unit test to test `channelMessage(string, string[])`
2023-03-08 20:13:55 +02:00
b33414fcf0 Dub
- Upgraded `dlog` to version `0.3.19`
2023-03-08 20:13:16 +02:00
b4f1654f77 Dub
- Updated copyright notice
- Updated author name
2023-03-08 18:25:25 +02:00
ccff4017d6 Receiver
- 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
2023-03-08 17:40:22 +02:00
8e0854e5b5 Receiver
- Added stub class `ReceiverThread`

Sender

- Added stub class `SenderThread`
2023-03-08 17:36:05 +02:00
f32c8671c6 Receiver
- Added new module intended to be used for receiving data

Sender

- Added new module intended to be used for sending data
2023-03-08 17:32:03 +02:00
d0dd315e55 Packaging
- Re-worked the `birchwood.client` module into a package which publically imports the `birchwood.client.core` package
2023-03-08 17:30:39 +02:00
39cbcbace6 Dub
- Added `libsnooze` version `0.2.9` as a dependency
2023-03-08 17:29:21 +02:00
b9b2cb9c2e Client
- 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
2023-03-08 17:24:41 +02:00
241f7753f5 Client
- Added TODOs where the Eventy calls must be temporarily removed (for now)
2023-03-08 17:19:21 +02:00
8812e247cb - Fixed unittest testing server address 2023-01-07 22:33:26 +02:00
3d9724565d Upgraded to latest dlog version 2023-01-07 22:33:09 +02:00
b9b666ef6c Upgraded to new Eventy engine v0.4.0 2022-11-28 13:48:38 +02:00
6a394ad4e8 Upgraded event engine to 0.3.2 2022-11-26 18:23:06 +02:00
565d6b10d8 Added dependencies to the README 2022-11-26 18:12:05 +02:00