storage

package
v1.19.1 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//ErrNotFound define err for no data in storage
	ErrNotFound = errors.New("Data Not Found")
)

Functions

This section is empty.

Types

type Everything

type Everything struct{}

Everything filter nothing

func (*Everything) MatchList

func (e *Everything) MatchList(objs []meta.Object) ([]meta.Object, error)

MatchList match object list

func (*Everything) Matchs

func (e *Everything) Matchs(obj meta.Object) (bool, error)

Matchs match object

func (*Everything) String

func (e *Everything) String() string

String match string

type LabelSelector

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

LabelSelector implements selector interface with Labels

func (*LabelSelector) MatchList

func (ls *LabelSelector) MatchList(objs []meta.Object) ([]meta.Object, error)

MatchList match object list

func (*LabelSelector) Matchs

func (ls *LabelSelector) Matchs(obj meta.Object) (bool, error)

Matchs match object

func (*LabelSelector) String

func (ls *LabelSelector) String() string

String match string

type NamespaceSelector

type NamespaceSelector struct {
	Namespace string
}

NamespaceSelector select expected namespace

func (*NamespaceSelector) MatchList

func (ns *NamespaceSelector) MatchList(objs []meta.Object) ([]meta.Object, error)

MatchList match object list

func (*NamespaceSelector) Matchs

func (ns *NamespaceSelector) Matchs(obj meta.Object) (bool, error)

Matchs match object

func (*NamespaceSelector) String

func (ns *NamespaceSelector) String() string

String match string

type Selector

type Selector interface {
	String() string
	Matchs(obj meta.Object) (bool, error)
	MatchList(objs []meta.Object) ([]meta.Object, error)
}

Selector is a filter when reading data from event-storage if data object is matched, object will push to watch tunnel

func LabelAsSelector

func LabelAsSelector(l meta.Labels) Selector

LabelAsSelector create selector from labels

func NewSelectors

func NewSelectors(s ...Selector) Selector

NewSelectors create multiple selector

type Selectors

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

Selectors compose multiple Selector

func (*Selectors) MatchList

func (ss *Selectors) MatchList(objs []meta.Object) ([]meta.Object, error)

MatchList match object list

func (*Selectors) Matchs

func (ss *Selectors) Matchs(obj meta.Object) (bool, error)

Matchs match object

func (*Selectors) String

func (ss *Selectors) String() string

String match string

type Storage

type Storage interface {
	//Create add new object data to storage, if data already exists, force update
	//and return data already exists
	//param ctx: reserved
	//param key: update data key in event storage
	//param obj: data object
	//param ttl: time-to-live in seconds, 0 means forever
	//return obj: nil or holding data if data already exists
	Create(ctx context.Context, key string, obj meta.Object, ttl int) (out meta.Object, err error)
	//Delete clean data by key, return object already delete
	//if data do not exist, return
	//param ctx: reserved
	//param key: delete data key in event storage
	Delete(ctx context.Context, key string) (obj meta.Object, err error)
	//Watch begin to watch key
	//param ctx: reserved
	//param key: specified key for watching
	//param version: specified version for watching, empty means latest version
	//param selector: filter for origin data in storage, nil means no filter
	//return watch.Interface: interface instance for watch
	Watch(ctx context.Context, key, version string, selector Selector) (watch.Interface, error)
	//Watch begin to watch all items under key directory
	//param ctx: reserved
	//param key: specified key for watching
	//param version: specified version for watching, empty means latest version
	//param selector: filter for origin data in storage, nil means no filter
	//return watch.Interface: interface instance for watch
	WatchList(ctx context.Context, key, version string, selector Selector) (watch.Interface, error)
	//Get data object by key
	//param ctx: reserved
	//param key: data key
	//param ignoreNotFound: nil object and no error when setting true
	Get(ctx context.Context, key, version string, ignoreNotFound bool) (obj meta.Object, err error)
	//List data object under key directory
	//param ctx: reserved
	//param key: data  directory
	//param ignoreNotFound: no error returns when setting true even nil object
	//param selector: filter for origin data in storage, nil means no filter
	List(ctx context.Context, key string, selector Selector) (objs []meta.Object, err error)
	//Close storage conenction, clean resource
	Close()
}

Storage offer one common interface for serialization of meta.Object and hide all event storage operation

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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