Documentation
¶
Index ¶
- type AuthProvider
- type ClientNodeStreamer
- 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 DiscoveryHandler ¶
type DiscoveryHandler interface {
DiscoveryHandlerStream(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)
GetFollowingsCount(userId string) (uint64, error)
Follow(fromUserId, toUserId string) error
Unfollow(fromUserId, toUserId string) error
GetFollowers(userId string, limit *uint64, cursor *string) ([]domain.ID, string, error)
GetFollowings(userId string, limit *uint64, cursor *string) ([]domain.ID, string, error)
IsFollowing(ownerId, otherUserId string) bool
IsFollower(ownerId, otherUserId string) bool
}
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, ) (_ *MemberNode, err error)
func (*MemberNode) Connect ¶
func (m *MemberNode) Connect(p warpnet.WarpAddrInfo) error
func (*MemberNode) GenericStream ¶
func (*MemberNode) Network ¶
func (m *MemberNode) Network() warpnet.WarpNetwork
func (*MemberNode) Node ¶
func (m *MemberNode) Node() warpnet.P2PNode
func (*MemberNode) NodeInfo ¶
func (m *MemberNode) NodeInfo() warpnet.NodeInfo
func (*MemberNode) Peerstore ¶
func (m *MemberNode) Peerstore() warpnet.WarpPeerstore
func (*MemberNode) SelfStream ¶
func (*MemberNode) SimpleConnect ¶
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 ¶
type PseudoStreamer ¶
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 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.