Documentation ¶
Index ¶
- Constants
- Variables
- func GenerateSecretKey() kademlia.PrivateKey
- func HostAddr(host net.IP, port uint16) string
- type Context
- type ContextPool
- type DataPacket
- type Handler
- type HandshakePacket
- type NetProtocolType
- 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) KadID() *kademlia.ID
- func (p *Provider) NextStream() *Stream
- func (p *Provider) Push(services []string, headers map[string]string, body io.ReadCloser) (*Stream, error)
- func (p *Provider) RegisterStreamWithServiceRequestPacket(header ServiceRequestPacket) (*Stream, bool)
- func (p *Provider) Services() []string
- type Providers
- type ServiceRequestPacket
- type ServiceResponsePacket
- type Stream
- type StreamNode
- func (n *StreamNode) Bootstrap()
- func (n *StreamNode) HandleConnState(conn *st.Conn, state st.ConnState)
- func (n *StreamNode) HandleMessage(ctx *st.Context) error
- func (n *StreamNode) ProbeWithAddr(addr string) error
- func (n *StreamNode) Providers() *Providers
- func (n *StreamNode) ProvidersFor(services ...string) []*Provider
- func (n *StreamNode) Push(services []string, headers map[string]string, body io.ReadCloser) (*Stream, error)
- func (n *StreamNode) SetNetProtocol(np NetProtocolType)
- func (n *StreamNode) Shutdown()
- func (n *StreamNode) Start() error
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 { KadId kademlia.ID Headers map[string]string Body io.ReadCloser // contains filtered or unexported fields }
func (*Context) WriteHeader ¶
type ContextPool ¶
type ContextPool struct {
// contains filtered or unexported fields
}
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 NetProtocolType ¶
type NetProtocolType = uint8
const ( NetProtocolTCP NetProtocolType = iota NetProtocolUDP NetProtocolIP )
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Service Provider
func (*Provider) CloseStreamWithError ¶
func (*Provider) NextStream ¶
func (*Provider) RegisterStreamWithServiceRequestPacket ¶
func (p *Provider) RegisterStreamWithServiceRequestPacket(header ServiceRequestPacket) (*Stream, bool)
type Providers ¶
func NewProviders ¶
func NewProviders() *Providers
type ServiceRequestPacket ¶
type ServiceRequestPacket struct { StreamId 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 { StreamId 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 Reader *pipeReader Writer *pipeWriter Header *ServiceResponsePacket // contains filtered or unexported fields }
type StreamNode ¶
type StreamNode struct { // A 32-byte Ed25519 private key. A secret key must be provided to allow for peers to reach you. // A secret key may be generated by calling `streaming_rpc.GenerateSecretKey()`. // It was used to sign for the HandshakePacket SecretKey kademlia.PrivateKey NetProtocol NetProtocolType // Such as TCP,UDP,IP KadId *kademlia.ID Srv *st.Server // A mapping of service names to their respective handlers. Services map[string]Handler // contains filtered or unexported fields }
func NewStreamNode ¶
func NewStreamNode(sk kademlia.PrivateKey, kid *kademlia.ID, tab *kademlia.Table) *StreamNode
func (*StreamNode) Bootstrap ¶
func (n *StreamNode) Bootstrap()
func (*StreamNode) HandleConnState ¶
func (n *StreamNode) HandleConnState(conn *st.Conn, state st.ConnState)
Implement HandleConnState function for the ConnStateHandler interface
func (*StreamNode) HandleMessage ¶
func (n *StreamNode) HandleMessage(ctx *st.Context) error
Implement HandleMessage function for the Handler interface
func (*StreamNode) ProbeWithAddr ¶
func (n *StreamNode) ProbeWithAddr(addr string) error
func (*StreamNode) Providers ¶
func (n *StreamNode) Providers() *Providers
func (*StreamNode) ProvidersFor ¶
func (n *StreamNode) ProvidersFor(services ...string) []*Provider
func (*StreamNode) Push ¶
func (n *StreamNode) Push(services []string, headers map[string]string, body io.ReadCloser) (*Stream, error)
func (*StreamNode) SetNetProtocol ¶
func (n *StreamNode) SetNetProtocol(np NetProtocolType)
func (*StreamNode) Shutdown ¶
func (n *StreamNode) Shutdown()
func (*StreamNode) Start ¶
func (n *StreamNode) Start() error
Click to show internal directories.
Click to hide internal directories.