member

package
v0.3.104 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2025 License: AGPL-3.0, AGPL-3.0-or-later Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthProvider

type AuthProvider interface {
	GetOwner() domain.Owner
	SessionToken() string
}

type ClientNodeStreamer

type ClientNodeStreamer interface {
	ClientStream(nodeId string, path string, data any) (_ []byte, err error)
	IsRunning() bool
}

type ConsensusServicer added in v0.3.76

type ConsensusServicer interface {
	Start(data event.ValidationEvent) error
	Close()
	Validate(data []byte, _ warpnet.WarpStream) (any, error)
	ValidationResult(data []byte, s warpnet.WarpStream) (any, error)
}

type DiscoveryHandler

type DiscoveryHandler interface {
	HandlePeerFound(pi warpnet.WarpAddrInfo)
	Run(n discovery.DiscoveryInfoStorer) error
	Close()
}

type DistributedHashTableCloser

type DistributedHashTableCloser interface {
	Close()
}

type FollowStorer

type FollowStorer interface {
	GetFollowersCount(userId string) (uint64, error)
	GetFolloweesCount(userId string) (uint64, error)
	Follow(fromUserId, toUserId string, event domain.Following) error
	Unfollow(fromUserId, toUserId string) error
	GetFollowers(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
	GetFollowees(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
}

type MDNSStarterCloser

type MDNSStarterCloser interface {
	Start(n mdns.NodeConnector)
	Close()
}

type MemberNode

type MemberNode struct {
	*base.WarpNode
	// contains filtered or unexported fields
}

func NewMemberNode

func NewMemberNode(
	ctx context.Context,
	privKey ed25519.PrivateKey,
	psk security.PSK,
	selfHashHex string,
	version *semver.Version,
	authRepo AuthProvider,
	db Storer,
	interruptChan chan os.Signal,
) (_ *MemberNode, err error)

func (*MemberNode) GenericStream

func (m *MemberNode) GenericStream(nodeIdStr streamNodeID, path stream.WarpRoute, data any) (_ []byte, err error)

func (*MemberNode) NodeInfo added in v0.3.8

func (m *MemberNode) NodeInfo() warpnet.NodeInfo

func (*MemberNode) Start

func (m *MemberNode) Start(clientNode ClientNodeStreamer) error

func (*MemberNode) Stop

func (m *MemberNode) Stop()

type NodeProvider added in v0.3.15

type NodeProvider interface {
	io.Closer
	GetSelfHashes() (map[string]struct{}, error)
}

type PubSubProvider

type PubSubProvider interface {
	SubscribeUserUpdate(userId string) (err error)
	UnsubscribeUserUpdate(userId string) (err error)
	Run(m pubsub.PubsubServerNodeConnector, clientNode pubsub.PubsubClientNodeStreamer)
	PublishUpdateToFollowers(ownerId string, msg event.Message) (err error)
	Close() error
}

type Storer

type Storer interface {
	NewTxn() (storage.WarpTransactioner, error)
	Get(key storage.DatabaseKey) ([]byte, error)
	GetExpiration(key storage.DatabaseKey) (uint64, error)
	GetSize(key storage.DatabaseKey) (int64, error)
	Sync() error
	IsClosed() bool
	InnerDB() *storage.WarpDB
	SetWithTTL(key storage.DatabaseKey, value []byte, ttl time.Duration) error
	Set(key storage.DatabaseKey, value []byte) error
	Delete(key storage.DatabaseKey) error
	Path() string
	Stats() map[string]string
	IsFirstRun() bool
}

type UserFetcher

type UserFetcher interface {
	Get(userId string) (user domain.User, err error)
	Update(userId string, newUser domain.User) (domain.User, error)
	GetByNodeID(nodeID string) (user domain.User, err error)
}

type UserProvider

type UserProvider interface {
	Create(user domain.User) (domain.User, error)
	GetByNodeID(nodeID string) (user domain.User, err error)
	Get(userId string) (user domain.User, err error)
	List(limit *uint64, cursor *string) ([]domain.User, string, error)
	Update(userId string, newUser domain.User) (updatedUser domain.User, err error)
	GetBatch(userIds ...string) (users []domain.User, err error)
	CreateWithTTL(user domain.User, ttl time.Duration) (domain.User, error)
	WhoToFollow(limit *uint64, cursor *string) ([]domain.User, string, error)
}

Jump to

Keyboard shortcuts

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