Documentation
¶
Index ¶
- Constants
- type Config
- type ILink
- type IProcessor
- type IRouter
- type IService
- type ITopology
- type Link
- type LinkClosed
- type LinkNode
- type Message
- type MessagePrefix
- type MessageProcessor
- type Node
- type RawMessageProcessor
- type Router
- func (r *Router) Broadcast(msg message.Message) (err error)
- func (r *Router) ConnectTo(node Node) (linkedNode LinkNode, err error)
- func (r *Router) GetAllLinkedNode() (nodes []Node)
- func (r *Router) JoinTopology(seed Node) (err error)
- func (r *Router) LeaveTopology()
- func (r *Router) LinkClosed(link ILink)
- func (r *Router) Listen(listener net.Listener)
- func (r *Router) RawMessageProcessor(data []byte, link ILink)
- func (r *Router) RegisterMessageProcessor(msgFamily string, processor MessageProcessor)
- func (r *Router) Self() Node
- func (r *Router) SendTo(node Node, msg Message) (n int, err error)
- func (r *Router) Start(cfg Config) (err error)
- func (r *Router) TopologyName() string
- type Service
- func (s *Service) Broadcast(msg message.Message) (err error)
- func (s *Service) ConnectTo(node Node) (err error)
- func (s *Service) Create(cfg Config) (err error)
- func (s *Service) GetAllLinkedNode() (nodes []Node)
- func (s *Service) Join(seeds []Node, serviceCfg *Config) (err error)
- func (s *Service) Leave()
- func (s *Service) RegisterMessageProcessor(msgFamily string, processor MessageProcessor)
- func (s *Service) Self() (node Node)
- func (s *Service) SendTo(node Node, msg message.Message) (sent int, err error)
- func (s *Service) StaticInformation() (info StaticInformation)
- type StaticInformation
Constants ¶
View Source
const ( MSG_JOIN = 0 MSG_LEAVE = 1 MSG_BROADCAST = 2 MSG_MULTICAST = 3 MSG_UNICAST = 4 MAGIC_WORD = "[what a day ^_T]" MAGIC_WORD_LEN = len(MAGIC_WORD) SIZE_LEN = 4 SIZE_DATA_TYPE = 1 MESSAGE_PREFIX_LEN = SIZE_LEN + SIZE_DATA_TYPE + MAGIC_WORD_LEN MAX_MESSAGE_LEN = 8 * 1024 * 1024 //raw message max size will be (8 MB + MESSAGE_PREFIX_LEN) bytes. JSON_TYPE = 0x00 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IProcessor ¶
type IRouter ¶
type IRouter interface { Self() Node TopologyName() string Start(cfg Config) (err error) Listen(listener net.Listener) ConnectTo(node Node) (linkedNode LinkNode, err error) LinkClosed(link ILink) JoinTopology(seed Node) (err error) LeaveTopology() GetAllLinkedNode() (nodes []Node) RawMessageProcessor(data []byte, link ILink) RegisterMessageProcessor(msgFamily string, processor MessageProcessor) SendTo(node Node, msg Message) (n int, err error) Broadcast(msg message.Message) (err error) }
type IService ¶
type IService interface { Self() (node Node) Create(cfg Config) (err error) ConnectTo(Node) (err error) Join(seeds []Node, cfg *Config) (err error) Leave() GetAllLinkedNode() (nodes []Node) SendTo(node Node, msg message.Message) (n int, err error) Broadcast(msg message.Message) (err error) RegisterMessageProcessor(msgFamily string, processor MessageProcessor) StaticInformation() StaticInformation }
type ITopology ¶
type ITopology interface { Name() string MountTo(router IRouter) BuildNodeID(node Node) string InterestedMessage(msg Message) (interested bool) MessageProcessor(msg Message, link ILink) Join(seed LinkNode) (err error) Leave() SetLocalNode(node LinkNode) GetLink(node Node) (link ILink, err error) GetAllNodes() []LinkNode AddLink(link ILink) RemoveLink(link ILink) }
type Link ¶
type Link struct { Connection net.Conn Reader *bufio.Reader Writer *bufio.Writer RawMessageProcessor RawMessageProcessor LinkClosed LinkClosed ConnectOut bool // contains filtered or unexported fields }
func (*Link) RemoteAddr ¶
func (*Link) StartReceiving ¶
func (l *Link) StartReceiving()
type LinkClosed ¶
type LinkClosed func(link ILink)
type LinkNode ¶
func NewNetworkNodeFromLink ¶
type MessagePrefix ¶
func (*MessagePrefix) FromBytes ¶
func (m *MessagePrefix) FromBytes(prefix []byte) (err error)
type MessageProcessor ¶
type RawMessageProcessor ¶
type Router ¶
type Router struct { Topology ITopology MessageProcessorMap map[string]MessageProcessor LocalNode LinkNode // contains filtered or unexported fields }
func (*Router) GetAllLinkedNode ¶
func (*Router) JoinTopology ¶
func (*Router) LeaveTopology ¶
func (r *Router) LeaveTopology()
func (*Router) LinkClosed ¶
func (*Router) RawMessageProcessor ¶
func (*Router) RegisterMessageProcessor ¶
func (r *Router) RegisterMessageProcessor(msgFamily string, processor MessageProcessor)
func (*Router) TopologyName ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func (*Service) GetAllLinkedNode ¶
func (*Service) RegisterMessageProcessor ¶
func (s *Service) RegisterMessageProcessor(msgFamily string, processor MessageProcessor)
func (*Service) StaticInformation ¶
func (s *Service) StaticInformation() (info StaticInformation)
type StaticInformation ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.