# relay

import "command-line-arguments"

# Index

  • func GenerateRandomIdentifier() (string, error)
  • func RecoverIdentity(signature *pb.Signature) (*pb.Identity, error)
  • type Client
    • func (client *Client) Connect()
    • func (client *Client) Disconnect()
    • func (client *Client) GetChannel() chan *pb.Message
    • func (client *Client) GetIdentity() *pb.Identity
    • func (client *Client) GetLimiter() *rate.Limiter
    • func (client *Client) HasSufficientBalance() bool
    • func (client *Client) IsConnected() bool
    • func (client *Client) IsIdle(idleTimeoutTime int) bool
    • func (client *Client) Ping()
    • func (client *Client) SetHasSufficientBalance(hasSufficientBalance bool)
    • func (client *Client) ShouldCheckBalance() bool
  • type ClientRegistry
    • func (registry *ClientRegistry) Count() int
    • func (registry *ClientRegistry) CountConnected() int
    • func (registry *ClientRegistry) DisconnectAll()
    • func (registry *ClientRegistry) GetClientFromIdentity(identity *pb.Identity) (*Client, error)
    • func (registry *ClientRegistry) GetClientFromSignature(signature *pb.Signature) (*Client, *pb.Identity, error)
    • func (registry *ClientRegistry) GetClients() []*Client
    • func (registry *ClientRegistry) IsRegistered(identity *pb.Identity) bool
    • func (registry *ClientRegistry) Register(identity *pb.Identity, config *RelayServerConfig)
    • func (registry *ClientRegistry) Unregister(identity *pb.Identity) error
  • type MessageLabel
    • func (label *MessageLabel) IsSubscribed(client *Client) bool
    • func (label *MessageLabel) Propagate(message *pb.Message, origin *pb.Identity)
    • func (label *MessageLabel) Subscribe(client *Client)
    • func (label *MessageLabel) Unsubscribe(client *Client) error
  • type RelayServerConfig
  • type SubscriptionRegistry
    • func (registry *SubscriptionRegistry) GetLabel(key string) *MessageLabel
    • func (registry *SubscriptionRegistry) Init()

# func GenerateRandomIdentifier

func GenerateRandomIdentifier() (string, error)

# func RecoverIdentity

func RecoverIdentity(signature *pb.Signature) (*pb.Identity, error)

# type Client

type Client struct {
    // contains filtered or unexported fields
}

# func (*Client) Connect

func (client *Client) Connect()

# func (*Client) Disconnect

func (client *Client) Disconnect()

# func (*Client) GetChannel

func (client *Client) GetChannel() chan *pb.Message

# func (*Client) GetIdentity

func (client *Client) GetIdentity() *pb.Identity

# func (*Client) GetLimiter

func (client *Client) GetLimiter() *rate.Limiter

# func (*Client) HasSufficientBalance

func (client *Client) HasSufficientBalance() bool

# func (*Client) IsConnected

func (client *Client) IsConnected() bool

# func (*Client) IsIdle

func (client *Client) IsIdle(idleTimeoutTime int) bool

# func (*Client) Ping

func (client *Client) Ping()

# func (*Client) SetHasSufficientBalance

func (client *Client) SetHasSufficientBalance(hasSufficientBalance bool)

# func (*Client) ShouldCheckBalance

func (client *Client) ShouldCheckBalance() bool

# type ClientRegistry

type ClientRegistry struct {
    // contains filtered or unexported fields
}

# func (*ClientRegistry) Count

func (registry *ClientRegistry) Count() int

# func (*ClientRegistry) CountConnected

func (registry *ClientRegistry) CountConnected() int

# func (*ClientRegistry) DisconnectAll

func (registry *ClientRegistry) DisconnectAll()

# func (*ClientRegistry) GetClientFromIdentity

func (registry *ClientRegistry) GetClientFromIdentity(identity *pb.Identity) (*Client, error)

# func (*ClientRegistry) GetClientFromSignature

func (registry *ClientRegistry) GetClientFromSignature(signature *pb.Signature) (*Client, *pb.Identity, error)

# func (*ClientRegistry) GetClients

func (registry *ClientRegistry) GetClients() []*Client

# func (*ClientRegistry) IsRegistered

func (registry *ClientRegistry) IsRegistered(identity *pb.Identity) bool

# func (*ClientRegistry) Register

func (registry *ClientRegistry) Register(identity *pb.Identity, config *RelayServerConfig)

# func (*ClientRegistry) Unregister

func (registry *ClientRegistry) Unregister(identity *pb.Identity) error

# type MessageLabel

type MessageLabel struct {
    // contains filtered or unexported fields
}

# func (*MessageLabel) IsSubscribed

func (label *MessageLabel) IsSubscribed(client *Client) bool

# func (*MessageLabel) Propagate

func (label *MessageLabel) Propagate(message *pb.Message, origin *pb.Identity)

# func (*MessageLabel) Subscribe

func (label *MessageLabel) Subscribe(client *Client)

# func (*MessageLabel) Unsubscribe

func (label *MessageLabel) Unsubscribe(client *Client) error

# type RelayServerConfig

type RelayServerConfig struct {
    IdleTimeoutTime        int
    IdleDisconnectInterval int
    MessageDriftTime       int
    MinAccountBalance      float64
    MaxDataSize            int

    VerifyMessageSignature bool
    VerifyAccountBalance   bool
    VerifyDataSize         bool
    MessageRateLimit       int
}

# type SubscriptionRegistry

type SubscriptionRegistry struct {
    // contains filtered or unexported fields
}

# func (*SubscriptionRegistry) GetLabel

func (registry *SubscriptionRegistry) GetLabel(key string) *MessageLabel

# func (*SubscriptionRegistry) Init

func (registry *SubscriptionRegistry) Init()

Generated by gomarkdoc