objectmanager

package
v0.19.0 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2021 License: MIT Imports: 18 Imported by: 2

Documentation

Index

Constants

View Source
const (
	ErrDone        = errors.Error("done")
	ErrTimeout     = errors.Error("request timed out")
	ErrMissingRoot = errors.Error("missing root")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type LookupOption

type LookupOption func(*LookupOptions)

LookupOptions

func FilterByHash

func FilterByHash(hs ...tilde.Digest) LookupOption

func FilterByObjectType

func FilterByObjectType(typePatterns ...string) LookupOption

func FilterByOwner

func FilterByOwner(hs ...did.DID) LookupOption

func FilterByStreamHash

func FilterByStreamHash(hs ...tilde.Digest) LookupOption

type LookupOptions

type LookupOptions struct {
	// Lookups are used to perform db queries for these filters
	// TODO find a better name for this
	Lookups struct {
		ObjectHashes []tilde.Digest
		StreamHashes []tilde.Digest
		ContentTypes []string
		Owners       []did.DID
	}
	// filters are the lookups equivalents for matching objects for pubsub
	Filters []ObjectFilter
}

LookupOptions

type ObjectFilter

type ObjectFilter func(*object.Object) bool

type ObjectManager

type ObjectManager interface {
	Put(
		ctx context.Context,
		o *object.Object,
	) error
	Append(
		ctx context.Context,
		o *object.Object,
	) (*object.Object, error)
	Request(
		ctx context.Context,
		hash tilde.Digest,
		peer *peer.ConnectionInfo,
	) (*object.Object, error)
	RequestStream(
		ctx context.Context,
		rootHash tilde.Digest,
		recipients ...*peer.ConnectionInfo,
	) (object.ReadCloser, error)
	AddStreamSubscription(
		ctx context.Context,
		rootHash tilde.Digest,
	) error
	Subscribe(
		lookupOptions ...LookupOption,
	) ObjectSubscription
}

type ObjectPubSub

type ObjectPubSub interface {
	Publish(*object.Object)
	Subscribe(...ObjectFilter) ObjectSubscription
}

ObjectPubSub -

func NewObjectPubSub

func NewObjectPubSub() ObjectPubSub

NewObject constructs and returns a new Object

type ObjectSubscription

type ObjectSubscription interface {
	object.ReadCloser
	Channel() <-chan *object.Object
}

ObjectSubscription is returned for every subscription

type Option

type Option func(*manager)

type SubscriptionsMap

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

SubscriptionsMap -

func NewSubscriptionsMap

func NewSubscriptionsMap() *SubscriptionsMap

NewSubscriptionsMap constructs a new SyncMap

func (*SubscriptionsMap) Delete

func (m *SubscriptionsMap) Delete(k tilde.Digest)

Delete -

func (*SubscriptionsMap) Get

Get -

func (*SubscriptionsMap) GetOrPut

GetOrPut -

func (*SubscriptionsMap) ListKeys

func (m *SubscriptionsMap) ListKeys() []tilde.Digest

ListKeys -

func (*SubscriptionsMap) ListValues

func (m *SubscriptionsMap) ListValues() []*stream.Subscription

ListValues -

func (*SubscriptionsMap) Put

Put -

func (*SubscriptionsMap) Range

func (m *SubscriptionsMap) Range(i func(k tilde.Digest, v *stream.Subscription) bool)

Range -

Jump to

Keyboard shortcuts

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