// Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved.
// MEF is licensed under Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
// MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
// See the Mulan PSL v2 for more details.
// Package taskschedule
package taskschedule
// TaskExecutor task execution func
type TaskExecutor func(TaskContext)
// TaskExecutorFactory task executor factory
type TaskExecutorFactory interface {
// GetID gets id
GetID() string
// CreateExecutor creates task executor
CreateExecutor() TaskExecutor
}
type taskExecutorFactoryImpl struct {
id string
executor TaskExecutor
}
func (c taskExecutorFactoryImpl) GetID() string {
return c.id
}
func (c taskExecutorFactoryImpl) CreateExecutor() TaskExecutor {
return c.executor
}
// NewExecutorFactory creates a basic executor factory
func NewExecutorFactory(id string, executor TaskExecutor) TaskExecutorFactory {
return taskExecutorFactoryImpl{id: id, executor: executor}
}