resources

package
v0.0.0-...-ca37748 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewResourceBaseMap

func NewResourceBaseMap(m map[string]int64) map[string]*ResourceBase

func NewResourceGroupMap

func NewResourceGroupMap(m map[string]int64) map[string]*ResourceGroup

Types

type ResourceBase

type ResourceBase struct {
	Name  string `json:"name"`
	Count int64  `json:"count"`
}

type ResourceGroup

type ResourceGroup struct {
	ResourceBase

	Held int64 `json:"held"`
	// contains filtered or unexported fields
}

func NewResourceGroup

func NewResourceGroup(name string, count int64) *ResourceGroup

func (*ResourceGroup) Acquire

func (r *ResourceGroup) Acquire(ctx context.Context, n int64) error

func (*ResourceGroup) GetCount

func (r *ResourceGroup) GetCount() int64

func (*ResourceGroup) GetHeld

func (r *ResourceGroup) GetHeld() int64

func (*ResourceGroup) Release

func (r *ResourceGroup) Release(n int64)

func (*ResourceGroup) TryAcquire

func (r *ResourceGroup) TryAcquire(n int64) bool

type ResourceHandle

type ResourceHandle struct {
	Request *ResourceRequest `json:"request"`
	Created time.Time        `json:"created"`
	// contains filtered or unexported fields
}

type ResourceManager

type ResourceManager struct {
	Groups map[string]*ResourceGroup     `json:"groups"`
	Active map[uuid.UUID]*ResourceHandle `json:"active"`
}

func NewResourceManager

func NewResourceManager(m map[string]int64) *ResourceManager

func (*ResourceManager) Acquire

func (rm *ResourceManager) Acquire(name string, ctx context.Context, n int64) error

func (*ResourceManager) GetCount

func (rm *ResourceManager) GetCount(name string) int64

func (*ResourceManager) GetHeld

func (rm *ResourceManager) GetHeld(name string) int64

func (*ResourceManager) Release

func (rm *ResourceManager) Release(name string, n int64)

func (*ResourceManager) ReleaseHandle

func (rm *ResourceManager) ReleaseHandle(id uuid.UUID)

func (*ResourceManager) TryAcquire

func (rm *ResourceManager) TryAcquire(name string, n int64) bool

func (*ResourceManager) TryAcquireRequest

func (rm *ResourceManager) TryAcquireRequest(request *ResourceRequest) (uuid.UUID, error)

func (*ResourceManager) UnmarshalJSON

func (r *ResourceManager) UnmarshalJSON(data []byte) error

func (*ResourceManager) UnmarshalYAML

func (r *ResourceManager) UnmarshalYAML(node *yaml.Node) error

type ResourceRequest

type ResourceRequest struct {
	Resources map[string]*ResourceBase `json:"resources"`
}

func (*ResourceRequest) UnmarshalJSON

func (r *ResourceRequest) UnmarshalJSON(data []byte) error

func (*ResourceRequest) UnmarshalYAML

func (r *ResourceRequest) UnmarshalYAML(node *yaml.Node) error

Jump to

Keyboard shortcuts

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