Some refactoring

* Don't export record field setters (unless required)
* Remove get- prefix from record getters
* Introduce handlers (simplified tasks)
This commit is contained in:
Ray Miller 2025-01-05 19:10:42 +00:00
parent 297d779ea4
commit 52f011267b
Signed by: ray
GPG key ID: 043F786C4CD681B8
6 changed files with 89 additions and 51 deletions

View file

@ -6,21 +6,19 @@
#:use-module (ordo context)
#:export (task
task?
get-task-description
set-task-description!
get-task-register
set-task-register!
get-task-triggers
set-task-triggers!
task-description
task-action
task-register
task-triggers
run-task))
(define-record-type <task>
(make-task description action register triggers)
task?
(description get-task-description set-task-description!)
(action get-task-action set-task-action!)
(register get-task-register set-task-regiseter!)
(triggers get-task-triggers set-task-triggers!))
(description task-description)
(action task-action)
(register task-register)
(triggers task-triggers))
(define* (task description action #:key (register #f) (triggers '()))
(make-task description action register triggers))
@ -28,10 +26,9 @@
(define (run-task conn ctx task)
(match task
(($ <task> description action register triggers)
(format #t "START ~a~%" description)
(format #t "RUNNING TASK ~a~%" description)
(let ((result (action conn ctx)))
(when register
(register-context-var! ctx register result))
(when triggers
(add-context-triggers! ctx triggers))
(format #t "END~%")))))
(add-context-triggers! ctx triggers))))))