sched

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDispatcherNotFound = errors.New("aoe sched: dispatcher not found")
	ErrSchedule           = errors.New("aoe sched: cannot schedule")
)
View Source
var (
	ErrDispatchWrongEvent = errors.New("aoe: wrong event type")
)
View Source
var (
	ErrDuplicateResource = errors.New("aoe: duplicate resource")
)
View Source
var (
	ErrEventHandleEnqueue = errors.New("aoe: event handle enqueue")
)
View Source
var (
	EventPrefix string = "Event"
)

Functions

func GetNextEventID

func GetNextEventID() uint64

func NewPoolHandler

func NewPoolHandler(num int, preSubmit PreSubmitExec) *poolHandler

func NewSingleWorkerHandler

func NewSingleWorkerHandler(name string) *singleWorkerHandler

Types

type BaseDispatcher

type BaseDispatcher struct {
	// contains filtered or unexported fields
}

func NewBaseDispatcher

func NewBaseDispatcher() *BaseDispatcher

func (*BaseDispatcher) Close

func (d *BaseDispatcher) Close() error

func (*BaseDispatcher) Dispatch

func (d *BaseDispatcher) Dispatch(e Event)

func (*BaseDispatcher) RegisterHandler

func (d *BaseDispatcher) RegisterHandler(t EventType, h EventHandler)

type BaseEvent

type BaseEvent struct {
	ops.Op
	// contains filtered or unexported fields
}

func NewBaseEvent

func NewBaseEvent(impl iops.IOpInternal, t EventType, doneCB ops.OpDoneCB, waitable bool) *BaseEvent

func (*BaseEvent) AttachID

func (e *BaseEvent) AttachID(id uint64)

func (*BaseEvent) Cancel

func (e *BaseEvent) Cancel() error

func (*BaseEvent) Execute

func (e *BaseEvent) Execute() error

func (*BaseEvent) ID

func (e *BaseEvent) ID() uint64

func (*BaseEvent) Type

func (e *BaseEvent) Type() EventType

type BaseEventHandler

type BaseEventHandler struct {
	ops.OpWorker
}

func NewBaseEventHandler

func NewBaseEventHandler(name string) *BaseEventHandler

func (*BaseEventHandler) Close

func (h *BaseEventHandler) Close() error

func (*BaseEventHandler) Enqueue

func (h *BaseEventHandler) Enqueue(e Event)

func (*BaseEventHandler) ExecuteEvent

func (h *BaseEventHandler) ExecuteEvent(e Event)

type BaseResource

type BaseResource struct {
	EventHandler
	// contains filtered or unexported fields
}

func NewBaseResource

func NewBaseResource(name string, t ResourceType, handler EventHandler) *BaseResource

func (*BaseResource) Close

func (r *BaseResource) Close() error

func (*BaseResource) Name

func (r *BaseResource) Name() string

func (*BaseResource) Start

func (r *BaseResource) Start()

func (*BaseResource) Type

func (r *BaseResource) Type() ResourceType

type BaseResourceMgr

type BaseResourceMgr struct {
	// contains filtered or unexported fields
}

func NewBaseResourceMgr

func NewBaseResourceMgr(handler EventHandler) *BaseResourceMgr

func (*BaseResourceMgr) Add

func (mgr *BaseResourceMgr) Add(res Resource) error

func (*BaseResourceMgr) Close

func (mgr *BaseResourceMgr) Close() error

func (*BaseResourceMgr) Enqueue

func (mgr *BaseResourceMgr) Enqueue(e Event)

func (*BaseResourceMgr) ExecuteEvent

func (mgr *BaseResourceMgr) ExecuteEvent(e Event)

func (*BaseResourceMgr) GetResource

func (mgr *BaseResourceMgr) GetResource(name string) Resource

func (*BaseResourceMgr) ResourceCount

func (mgr *BaseResourceMgr) ResourceCount() int

func (*BaseResourceMgr) ResourceCountByType

func (mgr *BaseResourceMgr) ResourceCountByType(t ResourceType) int

func (*BaseResourceMgr) Start

func (mgr *BaseResourceMgr) Start()

type BaseScheduler

type BaseScheduler struct {
	ops.OpWorker
	// contains filtered or unexported fields
}

func NewBaseScheduler

func NewBaseScheduler(name string) *BaseScheduler

func (*BaseScheduler) RegisterDispatcher

func (s *BaseScheduler) RegisterDispatcher(t EventType, dispatcher Dispatcher)

func (*BaseScheduler) Schedule

func (s *BaseScheduler) Schedule(e Event) error

func (*BaseScheduler) Stop

func (s *BaseScheduler) Stop()

type CommandType

type CommandType uint16
const (
	NoopCmd CommandType = iota
	CustomizedCmd
)

type Dispatcher

type Dispatcher interface {
	io.Closer
	Dispatch(Event)
}

type Event

type Event interface {
	iops.IOp
	AttachID(uint64)
	ID() uint64
	Type() EventType
	Cancel() error
}

type EventHandler

type EventHandler interface {
	Start()
	io.Closer
	Enqueue(Event)
	ExecuteEvent(Event)
}

type EventType

type EventType uint16
const (
	EmptyEvent EventType = iota
	MockEvent
	CustomizedEvent
)

type IDAllocFunc

type IDAllocFunc func() uint64

type PreSubmitExec

type PreSubmitExec func(iops.IOp) bool

type Resource

type Resource interface {
	EventHandler
	Type() ResourceType
	Name() string
}

type ResourceMgr

type ResourceMgr interface {
	EventHandler
	GetResource(name string) Resource
	ResourceCount() int
	ResourceCountByType(ResourceType) int
	Add(Resource) error
}

type ResourceType

type ResourceType uint16
const (
	ResTInvalid ResourceType = iota
	ResTIO
	ResTCPU
	ResTMeta
	ResTData
)

type Scheduler

type Scheduler interface {
	Start()
	Stop()
	Schedule(Event) error
	ExecCmd(CommandType) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL