rest of event definitions

This commit is contained in:
Gabriel mermelstein 2025-04-16 11:22:42 +03:00
parent 521ac4a3bf
commit 0999f44366
No known key found for this signature in database
GPG Key ID: 82B8134785FEAE0D
3 changed files with 48 additions and 1 deletions

View File

@ -0,0 +1,21 @@
import std/json
import ./json_base_event, ../../src/[message]
type JsonMissingDependenciesEvent* = ref object of JsonEvent
messageId*: MessageID
missingDeps: seq[MessageID]
proc new*(
T: type JsonMissingDependenciesEvent,
messageId: MessageID,
missingDeps: seq[MessageID],
): T =
# Returns a MissingDependencies event as indicated in
# https://rfc.vac.dev/spec/36/#jsonmessageevent-type
return JsonMissingDependenciesEvent(
eventType: "missing_dependencies", messageId: messageId, missingDeps: missingDeps
)
method `$`*(jsonMissingDependencies: JsonMissingDependenciesEvent): string =
$(%*jsonMissingDependencies)

View File

@ -0,0 +1,13 @@
import std/json
import ./json_base_event
type JsonPeriodicSyncEvent* = ref object of JsonEvent
proc new*(T: type JsonPeriodicSyncEvent): T =
# Returns a PeriodicSync event as indicated in
# https://rfc.vac.dev/spec/36/#jsonmessageevent-type
return JsonPeriodicSyncEvent(eventType: "periodic_sync")
method `$`*(jsonPeriodicSync: JsonPeriodicSyncEvent): string =
$(%*jsonPeriodicSync)

View File

@ -14,7 +14,10 @@ import
./sds_thread/inter_thread_communication/requests/
[sds_lifecycle_request, sds_message_request, sds_dependencies_request],
../src/[reliability, reliability_utils, message],
./events/[json_message_ready_event, json_message_sent_event]
./events/[
json_message_ready_event, json_message_sent_event, json_missing_dependencies_event,
json_periodic_sync_event,
]
################################################################################
### Wrapper around the reliability manager
@ -78,6 +81,16 @@ proc onMessageSent(ctx: ptr SdsContext): MessageSentCallback =
callEventCallback(ctx, "onMessageSent"):
$JsonMessageSentEvent.new(messageId)
proc onMissingDependencies(ctx: ptr SdsContext): MissingDependenciesCallback =
return proc(messageId: MessageID, missingDeps: seq[MessageID]) {.gcsafe.} =
callEventCallback(ctx, "onMissingDependencies"):
$JsonMissingDependenciesEvent.new(messageId, missingDeps)
proc onPeriodicSync(ctx: ptr SdsContext): PeriodicSyncCallback =
return proc() {.gcsafe.} =
callEventCallback(ctx, "onPeriodicSync"):
$JsonPeriodicSyncEvent.new()
### End of not-exported components
################################################################################