Documentation
¶
Index ¶
- type AuthProvider
- type ClientNodeStreamer
- type ConsensusServicer
- type DiscoveryHandler
- type DistributedHashTableCloser
- type FollowStorer
- type MDNSStarterCloser
- type MemberNode
- func (m *MemberNode) Connect(p warpnet.WarpAddrInfo) error
- func (m *MemberNode) GenericStream(nodeIdStr streamNodeID, path stream.WarpRoute, data any) (_ []byte, err error)
- func (m *MemberNode) Network() warpnet.WarpNetwork
- func (m *MemberNode) Node() warpnet.P2PNode
- func (m *MemberNode) NodeInfo() warpnet.NodeInfo
- func (m *MemberNode) Peerstore() warpnet.WarpPeerstore
- func (m *MemberNode) SelfStream(path stream.WarpRoute, data any) (_ []byte, err error)
- func (m *MemberNode) SimpleConnect(info warpnet.WarpAddrInfo) error
- func (m *MemberNode) Start() (err error)
- func (m *MemberNode) Stop()
- type NodeProvider
- type PseudoStreamer
- type PubSubProvider
- type Storer
- type UserFetcher
- type UserProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthProvider ¶
type ClientNodeStreamer ¶
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 (*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 (*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 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 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)
}
Click to show internal directories.
Click to hide internal directories.