comm

package
v1.0.0-alpha2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2017 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetDialTimeout

func SetDialTimeout(timeout time.Duration)

SetDialTimeout sets the dial timeout

Types

type ChannelDeMultiplexer

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

ChannelDeMultiplexer is a struct that can receive channel registrations (AddChannel) and publications (DeMultiplex) and it broadcasts the publications to registrations according to their predicate

func NewChannelDemultiplexer

func NewChannelDemultiplexer() *ChannelDeMultiplexer

NewChannelDemultiplexer creates a new ChannelDeMultiplexer

func (*ChannelDeMultiplexer) AddChannel

func (m *ChannelDeMultiplexer) AddChannel(predicate common.MessageAcceptor) chan interface{}

AddChannel registers a channel with a certain predicate

func (*ChannelDeMultiplexer) Close

func (m *ChannelDeMultiplexer) Close()

Close closes this channel, which makes all channels registered before to close as well.

func (*ChannelDeMultiplexer) DeMultiplex

func (m *ChannelDeMultiplexer) DeMultiplex(msg interface{})

DeMultiplex broadcasts the message to all channels that were returned by AddChannel calls and that hold the respected predicates.

type Comm

type Comm interface {

	// GetPKIid returns this instance's PKI id
	GetPKIid() common.PKIidType

	// Send sends a message to remote peers
	Send(msg *proto.SignedGossipMessage, peers ...*RemotePeer)

	// Probe probes a remote node and returns nil if its responsive,
	// and an error if it's not.
	Probe(peer *RemotePeer) error

	// Handshake authenticates a remote peer and returns
	// (its identity, nil) on success and (nil, error)
	Handshake(peer *RemotePeer) (api.PeerIdentityType, error)

	// Accept returns a dedicated read-only channel for messages sent by other nodes that match a certain predicate.
	// Each message from the channel can be used to send a reply back to the sender
	Accept(common.MessageAcceptor) <-chan proto.ReceivedMessage

	// PresumedDead returns a read-only channel for node endpoints that are suspected to be offline
	PresumedDead() <-chan common.PKIidType

	// CloseConn closes a connection to a certain endpoint
	CloseConn(peer *RemotePeer)

	// Stop stops the module
	Stop()
}

Comm is an object that enables to communicate with other peers that also embed a CommModule.

func NewCommInstance

func NewCommInstance(s *grpc.Server, cert *tls.Certificate, idStore identity.Mapper,
	peerIdentity api.PeerIdentityType, secureDialOpts api.PeerSecureDialOpts,
	dialOpts ...grpc.DialOption) (Comm, error)

NewCommInstance creates a new comm instance that binds itself to the given gRPC server

func NewCommInstanceWithServer

func NewCommInstanceWithServer(port int, idMapper identity.Mapper, peerIdentity api.PeerIdentityType,
	secureDialOpts api.PeerSecureDialOpts, dialOpts ...grpc.DialOption) (Comm, error)

NewCommInstanceWithServer creates a comm instance that creates an underlying gRPC server

type ReceivedMessageImpl

type ReceivedMessageImpl struct {
	*proto.SignedGossipMessage
	// contains filtered or unexported fields
}

ReceivedMessageImpl is an implementation of ReceivedMessage

func (*ReceivedMessageImpl) GetConnectionInfo

func (m *ReceivedMessageImpl) GetConnectionInfo() *proto.ConnectionInfo

GetConnectionInfo returns information about the remote peer that send the message

func (*ReceivedMessageImpl) GetGossipMessage

func (m *ReceivedMessageImpl) GetGossipMessage() *proto.SignedGossipMessage

GetGossipMessage returns the inner GossipMessage

func (*ReceivedMessageImpl) GetSourceEnvelope

func (m *ReceivedMessageImpl) GetSourceEnvelope() *proto.Envelope

GetSourceEnvelope Returns the Envelope the ReceivedMessage was constructed with

func (*ReceivedMessageImpl) Respond

func (m *ReceivedMessageImpl) Respond(msg *proto.GossipMessage)

Respond sends a msg to the source that sent the ReceivedMessageImpl

type RemotePeer

type RemotePeer struct {
	Endpoint string
	PKIID    common.PKIidType
}

RemotePeer defines a peer's endpoint and its PKIid

func (*RemotePeer) String

func (p *RemotePeer) String() string

String converts a RemotePeer to a string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL