mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-10-04 16:02:59 +08:00
35 lines
617 B
Go
35 lines
617 B
Go
package task
|
|
|
|
type CallBackTask struct {
|
|
Task
|
|
startHandler func() error
|
|
disposeHandler func()
|
|
}
|
|
|
|
func (t *CallBackTask) GetTaskType() TaskType {
|
|
return TASK_TYPE_CALL
|
|
}
|
|
|
|
func (t *CallBackTask) Start() error {
|
|
return t.startHandler()
|
|
}
|
|
|
|
func (t *CallBackTask) Dispose() {
|
|
if t.disposeHandler != nil {
|
|
t.disposeHandler()
|
|
}
|
|
}
|
|
|
|
func CreateTaskByCallBack(start func() error, dispose func()) *CallBackTask {
|
|
var task CallBackTask
|
|
task.startHandler = func() error {
|
|
err := start()
|
|
if err == nil && dispose == nil {
|
|
err = ErrTaskComplete
|
|
}
|
|
return err
|
|
}
|
|
task.disposeHandler = dispose
|
|
return &task
|
|
}
|