package peermgr import ( "github.com/link33/sidecar/internal/port" "github.com/link33/sidecar/model/pb" ) type sidecar struct { id string swarm PeerManager tag string rev chan *pb.Message } func newSidecar(id string, tag string, swarm *Swarm) *sidecar { rec := make(chan *pb.Message, 10) return &sidecar{ id: id, swarm: swarm, tag: tag, rev: rec, } } func (s *sidecar) ID() string { return s.id } func (s *sidecar) Type() string { return port.Sidecar } func (s *sidecar) Name() string { return s.ID() } func (s *sidecar) Tag() string { return s.tag } // Send 同步发送给绑定的对应的port dev func (s *sidecar) Send(msg *pb.Message) (*pb.Message, error) { return s.swarm.SendByID(s.ID(), msg) } // AsyncSend 异步发送给绑定的对应的port dev func (s *sidecar) AsyncSend(msg *pb.Message) error { return s.swarm.AsyncSendByID(s.ID(), msg) } // ListenIBTPX 从绑定的对应的port dev接收数据 func (s *sidecar) ListenIBTPX() <-chan *pb.Message { return s.rev } func (s *sidecar) Receive(msg *pb.Message) { s.rev <- msg }