56 lines
2.1 KiB
Factor
56 lines
2.1 KiB
Factor
USING: help.markup help.syntax calendar quotations ;
|
|
IN: alarms
|
|
|
|
HELP: alarm
|
|
{ $class-description "An alarm. Can be passed to " { $link cancel-alarm } "." } ;
|
|
|
|
HELP: add-alarm
|
|
{ $values { "quot" quotation } { "time" timestamp } { "frequency" { $maybe duration } } { "alarm" alarm } }
|
|
{ $description "Creates and registers an alarm to start at " { $snippet "time" } ". If " { $snippet "frequency" } " is " { $link f } ", this will be a one-time alarm, otherwise it will fire with the given frequency. The quotation will be called from the alarm thread." } ;
|
|
|
|
HELP: later
|
|
{ $values { "quot" quotation } { "duration" duration } { "alarm" alarm } }
|
|
{ $description "Creates and registers an alarm which calls the quotation once at " { $snippet "time" } " from now." }
|
|
{ $examples
|
|
{ $unchecked-example
|
|
"USING: alarms io calendar ;"
|
|
"""[ "GET BACK TO WORK, Guy." print flush ] 10 minutes later drop"""
|
|
""
|
|
}
|
|
} ;
|
|
|
|
HELP: cancel-alarm
|
|
{ $values { "alarm" alarm } }
|
|
{ $description "Cancels an alarm. Does nothing if the alarm is not active." } ;
|
|
|
|
HELP: every
|
|
{ $values
|
|
{ "quot" quotation } { "duration" duration }
|
|
{ "alarm" alarm } }
|
|
{ $description "Creates and registers an alarm which calls the quotation repeatedly, using " { $snippet "dt" } " as the frequency." }
|
|
{ $examples
|
|
{ $unchecked-example
|
|
"USING: alarms io calendar ;"
|
|
"""[ "Hi Buddy." print flush ] 10 seconds every drop"""
|
|
""
|
|
}
|
|
} ;
|
|
|
|
ARTICLE: "alarms" "Alarms"
|
|
"The " { $vocab-link "alarms" } " vocabulary provides a lightweight way to schedule one-time and recurring tasks without spawning a new thread." $nl
|
|
"The alarm class:"
|
|
{ $subsections
|
|
alarm
|
|
}
|
|
"Register a recurring alarm:"
|
|
{ $subsections every }
|
|
"Register a one-time alarm:"
|
|
{ $subsections later }
|
|
"Low-level interface to add alarms:"
|
|
{ $subsections add-alarm }
|
|
"Cancelling an alarm:"
|
|
{ $subsections cancel-alarm }
|
|
"Alarms do not persist across image saves. Saving and restoring an image has the effect of calling " { $link cancel-alarm } " on all " { $link alarm } " instances." ;
|
|
|
|
ABOUT: "alarms"
|