Next gen #3

Open
opened 2023-03-30 17:28:54 +01:00 by deavmi · 14 comments
Owner

What is this?

Re-write of Tristanable, mainly with a performance boost in mind due to the use of libsnooze.

Todo

Todo list:

  • Watcher

    • shutdown method
    • safe bformat receiveMessage(Socket, ref byte[])
  • Watcher queuing

    • default queue
    • testing default queue
    • testing normal queue
    • receiveMessage(Socket, ref byte[])
      • check returned value for error handling
      • ensure watcher dies properly
    • Listener support for when any queue gets updated (see #4)
  • Queue

    • Queue policy
    • Replace QueueItem with just TaggedMessage
    • enqueue (with notify)
    • dequeue (with wake)
    • On construction we might need to reserve using libsnooze (see #5)
    • eventy exception handling etc
      • in notifyAll()
      • in wait()
  • Manager

    • Add a method which can automatically find the next available unused queue id, generate said queue with id and return it
    • testing API
      • register queue (registerQueue(Queue))
        • positive cases
        • negative cases
      • fetching a queue (getQueue(ulong) and getQueue_nothrow(ulong))
        • positive cases
        • negative cases
  • Queue

    • Decide on good wake up interval
    • Add a dequeue(Duration)
      • Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well.
## What is this? Re-write of Tristanable, mainly with a performance boost in mind due to the use of `libsnooze`. ## Todo Todo list: - [x] Watcher - [x] shutdown method - [x] safe bformat `receiveMessage(Socket, ref byte[])` - [ ] Watcher queuing - [x] default queue - [x] testing default queue - [x] testing normal queue - [x] `receiveMessage(Socket, ref byte[])` - [x] check returned value for error handling - [x] ensure watcher dies properly - [ ] Listener support for when **any** queue gets updated (see #4) - [ ] Queue - [ ] Queue policy - [x] Replace `QueueItem` with just `TaggedMessage` - [x] enqueue (with notify) - [x] dequeue (with wake) - [x] On construction we might need to reserve using `libsnooze` (see #5) - [ ] ~~eventy exception handling etc~~ - [ ] ~~in `notifyAll()`~~ - [ ] ~~in `wait()`~~ - [ ] Manager - [ ] Add a method which can automatically find the next available unused queue id, generate said queue with id and return it - [ ] testing API - [x] register queue (`registerQueue(Queue)`) - [x] positive cases - [x] negative cases - [x] fetching a queue (`getQueue(ulong)` and `getQueue_nothrow(ulong)`) - [x] positive cases - [x] negative cases - [ ] Queue - [ ] Decide on good wake up interval - [ ] Add a `dequeue(Duration)` * Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well.
deavmi added reference nextgen 2023-03-30 17:29:00 +01:00
deavmi self-assigned this 2023-03-30 17:29:07 +01:00
deavmi added this to the Next-gen milestone 2023-03-30 17:29:09 +01:00
deavmi added the
enhancement
todo
labels 2023-03-30 17:29:15 +01:00
deavmi started working 2023-03-30 17:31:11 +01:00
deavmi added the due date 2023-04-09 2023-03-30 17:36:22 +01:00
deavmi added a new dependency 2023-03-30 17:36:52 +01:00
deavmi stopped working 2023-03-30 17:37:17 +01:00
6 minutes 6 seconds
deavmi started working 2023-03-30 17:37:22 +01:00
Author
Owner

Good progress made now, just testing a few things. I should be able to check most of these off by the end of this week.

Hoping to make the 9th of April deadline.

Good progress made now, just testing a few things. I should be able to check most of these off by the end of this week. Hoping to make the 9th of April deadline.
Author
Owner

Publishing a beta version now v3.0.0-beta

Publishing a beta version now `v3.0.0-beta`
Author
Owner

I should probably work on finishing up the unit tests today.

I should probably work on finishing up the unit tests today.
Author
Owner

Added a configuration option for Manager. First option is to allow a user to auto-register a queue on the invocation of sendMessage(TaggedMessage) based on the tagged message's tag.

Added a configuration option for `Manager`. First option is to allow a user to auto-register a queue on the invocation of `sendMessage(TaggedMessage)` based on the tagged message's tag.
deavmi added a new dependency 2023-04-06 11:09:39 +01:00
deavmi added a new dependency 2023-04-06 11:09:44 +01:00
Author
Owner

Added safe bformat receive(Socket, ref byte[]) usage as of commit 375a611a827cf0856b4c73f2dc47ee82581a0433

Added safe bformat `receive(Socket, ref byte[])` usage as of commit `375a611a827cf0856b4c73f2dc47ee82581a0433`
Author
Owner

Added a proper shutdown method as of commit 375a611a827cf0856b4c73f2dc47ee82581a0433

Added a proper shutdown method as of commit `375a611a827cf0856b4c73f2dc47ee82581a0433`
Author
Owner

Wow, were actually almost done.

Wow, were actually almost done.
deavmi stopped working 2023-04-17 16:01:25 +01:00
2 weeks 3 days
deavmi added spent time 2023-10-01 18:48:44 +01:00
10 minutes
deavmi removed the due date 2023-04-09 2023-10-01 18:48:47 +01:00
deavmi added the due date 2023-10-06 2023-10-01 18:48:59 +01:00
deavmi started working 2023-10-01 18:49:01 +01:00
Author
Owner

We might want to open a seperate issue, but make sure everything if isnished here first?

We might want to open a seperate issue, but make sure everything if isnished here first?
deavmi added a new dependency 2023-10-01 18:50:10 +01:00
deavmi stopped working 2023-10-01 18:50:12 +01:00
1 minute 11 seconds
deavmi started working 2023-10-01 19:52:40 +01:00
deavmi stopped working 2023-10-01 19:59:19 +01:00
6 minutes 38 seconds
deavmi started working 2023-10-02 13:37:05 +01:00
deavmi stopped working 2023-10-02 13:39:05 +01:00
2 minutes
deavmi removed a dependency 2023-10-02 13:40:18 +01:00
deavmi started working 2023-10-02 13:40:20 +01:00
Author
Owner

Working on migrating to niknaks real quick...

Working on migrating to niknaks real quick...
Author
Owner

Working on migrating to niknaks real quick...

Almost done

> Working on migrating to niknaks real quick... Almost done
Author
Owner

Working on migrating to niknaks real quick...

Almost done

Merged

> > Working on migrating to niknaks real quick... > > Almost done Merged ✅
deavmi stopped working 2023-10-02 14:39:44 +01:00
59 minutes 24 seconds
deavmi started working 2023-10-02 14:43:02 +01:00
Author
Owner

What is this?

Re-write of Tristanable, mainly with a performance boost in mind due to the use of libsnooze.

Todo

Todo list:

  • Watcher

    • shutdown method
    • safe bformat receiveMessage(Socket, ref byte[])
  • Watcher queuing

    • default queue
    • testing default queue
    • testing normal queue
    • receiveMessage(Socket, ref byte[])
      • check returned value for error handling
      • ensure watcher dies properly
    • Listener support for when any queue gets updated (see #4)
  • Queue

    • Queue policy
    • Replace QueueItem with just TaggedMessage
    • enqueue (with notify)
    • dequeue (with wake)
    • On construction we might need to reserve using libsnooze (see #5)
    • eventy exception handling etc
      • in notifyAll()
      • in wait()
  • Manager

    • Add a method which can automatically find the next available unused queue id, generate said queue with id and return it
    • testing API
      • register queue (registerQueue(Queue))
        • positive cases
        • negative cases
      • fetching a queue (getQueue(ulong) and getQueue_nothrow(ulong))
        • positive cases
        • negative cases
  • Queue

    • Decide on good wake up interval
    • Add a dequeue(Duration)
      * Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well.

Just default queue testing we need to work on.

> ## What is this? > > Re-write of Tristanable, mainly with a performance boost in mind due to the use of `libsnooze`. > > ## Todo > > Todo list: > > - [x] Watcher > - [x] shutdown method > - [x] safe bformat `receiveMessage(Socket, ref byte[])` > - [ ] Watcher queuing > - [ ] default queue > - [ ] testing default queue > - [x] testing normal queue > - [x] `receiveMessage(Socket, ref byte[])` > - [x] check returned value for error handling > - [x] ensure watcher dies properly > - [ ] Listener support for when **any** queue gets updated (see #4) > - [ ] Queue > - [ ] Queue policy > - [x] Replace `QueueItem` with just `TaggedMessage` > - [x] enqueue (with notify) > - [x] dequeue (with wake) > - [x] On construction we might need to reserve using `libsnooze` (see #5) > - [ ] eventy exception handling etc > - [ ] in `notifyAll()` > - [ ] in `wait()` > - [ ] Manager > - [ ] Add a method which can automatically find the next available unused queue id, generate said queue with id and return it > - [ ] testing API > - [x] register queue (`registerQueue(Queue)`) > - [x] positive cases > - [x] negative cases > - [x] fetching a queue (`getQueue(ulong)` and `getQueue_nothrow(ulong)`) > - [x] positive cases > - [x] negative cases > > - [ ] Queue > - [ ] Decide on good wake up interval > - [ ] Add a `dequeue(Duration)` > * Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well. Just default queue testing we need to work on.
Author
Owner

What is this?

Re-write of Tristanable, mainly with a performance boost in mind due to the use of libsnooze.

Todo

Todo list:

  • Watcher

    • shutdown method
    • safe bformat receiveMessage(Socket, ref byte[])
  • Watcher queuing

    • default queue
    • testing default queue
    • testing normal queue
    • receiveMessage(Socket, ref byte[])
      • check returned value for error handling
      • ensure watcher dies properly
    • Listener support for when any queue gets updated (see #4)
  • Queue

    • Queue policy
    • Replace QueueItem with just TaggedMessage
    • enqueue (with notify)
    • dequeue (with wake)
    • On construction we might need to reserve using libsnooze (see #5)
    • eventy exception handling etc
      • in notifyAll()
      • in wait()
  • Manager

    • Add a method which can automatically find the next available unused queue id, generate said queue with id and return it
    • testing API
      • register queue (registerQueue(Queue))
        • positive cases
        • negative cases
      • fetching a queue (getQueue(ulong) and getQueue_nothrow(ulong))
        • positive cases
        • negative cases
  • Queue

    • Decide on good wake up interval
    • Add a dequeue(Duration)
      * Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well.

Default queue works

> ## What is this? > > Re-write of Tristanable, mainly with a performance boost in mind due to the use of `libsnooze`. > > ## Todo > > Todo list: > > - [x] Watcher > - [x] shutdown method > - [x] safe bformat `receiveMessage(Socket, ref byte[])` > - [ ] Watcher queuing > - [x] default queue > - [x] testing default queue > - [x] testing normal queue > - [x] `receiveMessage(Socket, ref byte[])` > - [x] check returned value for error handling > - [x] ensure watcher dies properly > - [ ] Listener support for when **any** queue gets updated (see #4) > - [ ] Queue > - [ ] Queue policy > - [x] Replace `QueueItem` with just `TaggedMessage` > - [x] enqueue (with notify) > - [x] dequeue (with wake) > - [x] On construction we might need to reserve using `libsnooze` (see #5) > - [ ] eventy exception handling etc > - [ ] in `notifyAll()` > - [ ] in `wait()` > - [ ] Manager > - [ ] Add a method which can automatically find the next available unused queue id, generate said queue with id and return it > - [ ] testing API > - [x] register queue (`registerQueue(Queue)`) > - [x] positive cases > - [x] negative cases > - [x] fetching a queue (`getQueue(ulong)` and `getQueue_nothrow(ulong)`) > - [x] positive cases > - [x] negative cases > > - [ ] Queue > - [ ] Decide on good wake up interval > - [ ] Add a `dequeue(Duration)` > * Because we have wakeup, we must have a stopwatch then or modifythe algo of what wakeup is as well. Default queue works
deavmi stopped working 2023-10-02 14:49:06 +01:00
6 minutes 4 seconds
deavmi started working 2023-10-02 14:49:57 +01:00
Author
Owner

Merging...

But issue stays open as I still want to work on it.

Merging... But issue stays open as I still want to work on it.
deavmi stopped working 2023-10-02 14:57:41 +01:00
7 minutes 43 seconds
deavmi changed reference from nextgen to master 2023-10-02 15:04:03 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Total Time Spent: 2 weeks 4 days
deavmi
2 weeks 4 days
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

2023-10-06

Depends on
#7 Migrate from libsnooze
deavmi/tristanable
You do not have permission to read 2 dependencies
Reference: deavmi/tristanable#3
No description provided.