The Perfect "Repeater" is a simple library that takes a closure and executes it at the specified interval until the closure returns false or the application is terminated.
Note that a demo is located at https://github.com/PerfectExamples/Perfect-Repeater-Demo that shows the operation of the library.
The master branch of this project currently compiles with Xcode 9 or the Swift 4 toolchain on Ubuntu, and is compatible with both Perfect 2.x and 3.x
Add this project as a dependency in your Package.swift file.
.Package(url:"https://github.com/PerfectlySoft/Perfect-Repeater.git", majorVersion: 1)
Include in your file the import statement:
import PerfectRepeater
The base form of executing this is:
Repeater.exec(timer: <Double>, callback: <Closure>)
To demonstrate the process of repeating a closure containing your code and optionally re-queuing:
var opt = 1
let c = {
() -> Bool in
print("XXXXXX")
return true
}
let cc = {
() -> Bool in
print("Hello, world! (\(opt))")
if opt < 10 {
opt += 1
return true
} else {
print("cc exiting.")
return false
}
}
Repeater.exec(timer: 3.0, callback: c)
Repeater.exec(timer: 2.0, callback: cc)
For more information on the Perfect project, please visit perfect.org.