// 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
import (
"context"
)
// TaskContext task context
type TaskContext interface {
context.Context
// Spec returns task specification
Spec() TaskSpec
// GracefulShutdown returns graceful shutdown channel
GracefulShutdown() <-chan struct{}
// UpdateLiveness updates task liveness
UpdateLiveness() error
// UpdateStatus updates task status
UpdateStatus(result TaskStatus) error
// GetStatus gets task status
GetStatus() (TaskStatus, error)
// GetSubTaskTree gets sub task tree
GetSubTaskTree() (TaskTreeNode, error)
// Cancel cancels task
Cancel()
}