member

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 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(streamer consensus.ConsensusStreamer) (err error)
	Close()
	AskValidation(data event.ValidationEvent)
	Validate(ev event.ValidationEvent) error
	ValidationResult(ev event.ValidationResultEvent) 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 {
	// 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) Connect added in v0.3.110

func (m *MemberNode) Connect(p warpnet.WarpAddrInfo) error

func (*MemberNode) GenericStream

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

func (*MemberNode) Network added in v0.3.110

func (m *MemberNode) Network() warpnet.WarpNetwork

func (*MemberNode) Node added in v0.3.110

func (m *MemberNode) Node() warpnet.P2PNode

func (*MemberNode) NodeInfo added in v0.3.8

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

func (*MemberNode) Peerstore added in v0.3.110

func (m *MemberNode) Peerstore() warpnet.WarpPeerstore

func (*MemberNode) SelfStream added in v0.3.114

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

func (*MemberNode) SimpleConnect added in v0.3.110

func (m *MemberNode) SimpleConnect(info warpnet.WarpAddrInfo) error

func (*MemberNode) Start

func (m *MemberNode) Start() (err 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 PseudoStreamer added in v0.3.110

type PseudoStreamer interface {
	ID() warpnet.WarpPeerID
	IsMastodonID(id warpnet.WarpPeerID) bool
	Addrs() []warpnet.WarpAddress
	Route(r stream.WarpRoute, data any) (_ []byte, err error)
}

type PubSubProvider

type PubSubProvider interface {
	SubscribeUserUpdate(userId string) (err error)
	PublishModerationRequest(bt []byte) (err error)
	UnsubscribeUserUpdate(userId string) (err error)
	Run(m pubsub.PubsubServerNodeConnector)
	PublishUpdateToFollowers(ownerId, dest string, bt []byte) (err error)
	Close() error
}

type Storer

type Storer interface {
	NewTxn() (local.WarpTransactioner, error)
	Get(key local.DatabaseKey) ([]byte, error)
	GetExpiration(key local.DatabaseKey) (uint64, error)
	GetSize(key local.DatabaseKey) (int64, error)
	Sync() error
	IsClosed() bool
	InnerDB() *local.WarpDB
	SetWithTTL(key local.DatabaseKey, value []byte, ttl time.Duration) error
	Set(key local.DatabaseKey, value []byte) error
	Delete(key local.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