Documentation
¶
Index ¶
- Constants
- Variables
- func Addr(host net.IP, port uint16) string
- func GenerateSecretKey() kademlia.PrivateKey
- type BindFunc
- type Context
- type DataPacket
- type Handler
- type HandshakePacket
- type Node
- func (n *Node) HandleConnState(conn *monte.Conn, state monte.ConnState)
- func (n *Node) HandleMessage(ctx *monte.Context) error
- func (n *Node) Probe(addr string) error
- func (n *Node) Push(services []string, headers map[string]string, body io.ReadCloser) (*Stream, error)
- func (n *Node) Shutdown()
- func (n *Node) Start(addrs ...string) error
- type Opcode
- type Provider
- func (p *Provider) Addr() string
- func (p *Provider) Close()
- func (p *Provider) CloseStreamWithError(stream *Stream, err error)
- func (p *Provider) GetStream(id uint32) (*Stream, bool)
- func (p *Provider) NextStream() *Stream
- func (p *Provider) Push(services []string, headers map[string]string, body io.ReadCloser) (*Stream, error)
- func (p *Provider) RegisterStream(header ServiceRequestPacket) (*Stream, bool)
- func (p *Provider) Services() []string
- type Providers
- type ServiceRequestPacket
- type ServiceResponsePacket
- type Stream
Constants ¶
View Source
const ChunkSize = 2048
Variables ¶
View Source
var ErrProviderNotAvailable = errors.New("provider unable to provide service")
Functions ¶
func GenerateSecretKey ¶
func GenerateSecretKey() kademlia.PrivateKey
Types ¶
type Context ¶
type Context struct {
Headers map[string]string
Body io.ReadCloser
ID uint32 // stream id
Conn *monte.Conn
// contains filtered or unexported fields
}
func (*Context) WriteHeader ¶
type DataPacket ¶
func UnmarshalDataPacket ¶
func UnmarshalDataPacket(buf []byte) (DataPacket, error)
func (DataPacket) AppendTo ¶
func (p DataPacket) AppendTo(dst []byte) []byte
type HandshakePacket ¶
func UnmarshalHandshakePacket ¶
func UnmarshalHandshakePacket(buf []byte) (HandshakePacket, error)
func (HandshakePacket) AppendPayloadTo ¶
func (h HandshakePacket) AppendPayloadTo(dst []byte) []byte
func (HandshakePacket) AppendTo ¶
func (h HandshakePacket) AppendTo(dst []byte) []byte
func (HandshakePacket) Validate ¶
func (h HandshakePacket) Validate(dst []byte) error
type Node ¶
type Node struct {
PublicAddr string
SecretKey kademlia.PrivateKey
BindAddrs []BindFunc
Services map[string]Handler
// contains filtered or unexported fields
}
func (*Node) HandleConnState ¶
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
func (*Provider) CloseStreamWithError ¶
func (*Provider) NextStream ¶
func (*Provider) RegisterStream ¶
func (p *Provider) RegisterStream(header ServiceRequestPacket) (*Stream, bool)
type Providers ¶
func NewProviders ¶
func NewProviders() *Providers
type ServiceRequestPacket ¶
type ServiceRequestPacket struct {
ID uint32 // stream id
Services []string // services this packet may be processed through
Headers map[string]string // headers for this packet
}
func UnmarshalServiceRequestPacket ¶
func UnmarshalServiceRequestPacket(buf []byte) (ServiceRequestPacket, error)
func (ServiceRequestPacket) AppendTo ¶
func (p ServiceRequestPacket) AppendTo(dst []byte) []byte
type ServiceResponsePacket ¶
type ServiceResponsePacket struct {
ID uint32 // stream id
Handled bool // whether or not the service was handled
Headers map[string]string // headers for this packet
}
func UnmarshalServiceResponsePacket ¶
func UnmarshalServiceResponsePacket(buf []byte) (ServiceResponsePacket, error)
func (ServiceResponsePacket) AppendTo ¶
func (p ServiceResponsePacket) AppendTo(dst []byte) []byte
type Stream ¶
type Stream struct {
ID uint32
Header *ServiceResponsePacket
Reader *io.PipeReader
Writer *io.PipeWriter
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.