package model type TunnelPair struct { pair []*Tunnel } func NewTunnelPair(a *Tunnel, b *Tunnel) *TunnelPair { r := new(TunnelPair) r.pair = make([]*Tunnel, 2) p := r.pair p[0] = a p[1] = b return r } func (this *TunnelPair) Run() { p := this.pair for _, v := range p { go v.Run() } } func (this *TunnelPair) SetRegChan(reg chan interface{}) { p := this.pair for _, v := range p { v.SetRegChan(reg) } } func (this *TunnelPair) SetUnRegChan(unreg chan interface{}) { p := this.pair for _, v := range p { v.SetUnRegChan(unreg) } }