Versions in this module Expand all Collapse all v0 v0.8.0 Dec 2, 2025 v0.7.2 Dec 2, 2025 Changes in this version + const UserStatusDisconnected + const UserStatusUp + func MapFilter[A any, B any](in []A, f func(A) (B, bool)) []B + func Map[A any, B any](in []A, f func(A) B) []B + type Client struct + Host string + func NewClient(ctx context.Context, log *slog.Logger, hostname string, port int, ...) (*Client, error) + func (c *Client) AddPublisherToMulticastGroupAllowlist(ctx context.Context, code string, pubkey solana.PublicKey, clientIP string) error + func (c *Client) AddSubscriberToMulticastGroupAllowlist(ctx context.Context, code string, pubkey solana.PublicKey, clientIP string) error + func (c *Client) AddToMulticastGroupAllowlist(ctx context.Context, code string, ...) error + func (c *Client) Close() error + func (c *Client) ConnectUserMulticast(ctx context.Context, multicastGroupCode string, ...) error + func (c *Client) ConnectUserMulticast_Publisher_NoWait(ctx context.Context, multicastGroupCode string) error + func (c *Client) ConnectUserMulticast_Publisher_Wait(ctx context.Context, multicastGroupCode string) error + func (c *Client) ConnectUserMulticast_Subscriber_NoWait(ctx context.Context, multicastGroupCode string) error + func (c *Client) ConnectUserMulticast_Subscriber_Wait(ctx context.Context, multicastGroupCode string) error + func (c *Client) ConnectUserUnicast(ctx context.Context, deviceCode string, waitForStatus bool) error + func (c *Client) ConnectUserUnicast_AnyDevice(ctx context.Context, waitForStatus bool) error + func (c *Client) ConnectUserUnicast_AnyDevice_NoWait(ctx context.Context) error + func (c *Client) ConnectUserUnicast_AnyDevice_Wait(ctx context.Context) error + func (c *Client) ConnectUserUnicast_NoWait(ctx context.Context, deviceCode string) error + func (c *Client) CreateMulticastGroup(ctx context.Context, code string, maxBandwidth string) (*MulticastGroup, error) + func (c *Client) DeleteMulticastGroup(ctx context.Context, pubkey solana.PublicKey) error + func (c *Client) DisconnectUser(ctx context.Context, waitForStatus bool, waitForDeletion bool) error + func (c *Client) GetCurrentDevice(ctx context.Context) (*Device, error) + func (c *Client) GetInstalledRoutes(ctx context.Context) ([]*pb.Route, error) + func (c *Client) GetMulticastGroup(ctx context.Context, code string) (*MulticastGroup, error) + func (c *Client) GetOwnerPubkey(ctx context.Context) (solana.PublicKey, error) + func (c *Client) GetUserStatus(ctx context.Context) (*pb.Status, error) + func (c *Client) MulticastJoin(ctx context.Context, group *MulticastGroup) error + func (c *Client) MulticastLeave(ctx context.Context, code string) error + func (c *Client) MulticastSend(ctx context.Context, group *MulticastGroup, duration time.Duration) error + func (c *Client) PublicIP() net.IP + func (c *Client) SetLogger(log *slog.Logger) + func (c *Client) TestUnicastConnectivity(ctx context.Context, targetClient *Client) (*UnicastTestConnectivityResult, error) + func (c *Client) TracerouteRaw(ctx context.Context, targetIP string) (string, error) + func (c *Client) WaitForMulticastReport(ctx context.Context, group *MulticastGroup) (*pb.MulticastReport, error) + func (c *Client) WaitForRoutes(ctx context.Context, expectedIPs []net.IP) error + func (c *Client) WaitForStatusDisconnected(ctx context.Context) error + func (c *Client) WaitForStatusUp(ctx context.Context) error + type Device struct + Code string + ExchangeCode string + MaxUsers int + PubKey string + UsersCount int + type MulticastGroup struct + Code string + IP net.IP + OwnerPK solana.PublicKey + PK solana.PublicKey + Status serviceability.MulticastGroupStatus + type Test struct + func NewTest(ctx context.Context, log *slog.Logger, hosts []string, port int, ...) (*Test, error) + func (c *Test) Close() error + func (c *Test) GetClient(host string) *Client + func (c *Test) ShuffledValidDevices(minCapacity int) []*Device + func (t *Test) Clients() []*Client + func (t *Test) Devices() map[string]*Device + func (t *Test) RandomClient() *Client + func (t *Test) RandomMulticastGroupCode() string + func (t *Test) ValidDevices(minCapacity int) []*Device + type UnicastTestConnectivityResult struct + PacketsReceived uint32 + PacketsSent uint32