本文整理匯總了Golang中github.com/petar/GoTeleport/tele/trace.Frame.Bind方法的典型用法代碼示例。如果您正苦於以下問題:Golang Frame.Bind方法的具體用法?Golang Frame.Bind怎麽用?Golang Frame.Bind使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/petar/GoTeleport/tele/trace.Frame
的用法示例。
在下文中一共展示了Frame.Bind方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: NewTransport
func NewTransport(frame trace.Frame, sub *codec.Transport) *Transport {
t := &Transport{
frame: frame,
sub: sub,
Dialer: NewDialer(frame.Refine("dialer"), sub),
}
frame.Bind(t)
return t
}
示例2: NewListener
func NewListener(frame trace.Frame, sub *codec.Listener) *Listener {
l := &Listener{frame: frame, sub: sub, ach: make(chan *Conn)}
frame.Bind(l)
go func() {
for {
NewAcceptBridge(l.frame.Refine("accept"), l, l.sub.Accept())
}
}()
return l
}
示例3: NewBuffer
// NewBuffer creates a new buffer with limit m.
func NewBuffer(frame trace.Frame, m int) *Buffer {
b := &Buffer{
wch: make(chan struct{}, m+1), // +1 for the final EOF, so it does not block
// The capacity of rch is chosen so that writers to rch will never block.
rch: make(chan struct{}, 4*m+2),
}
frame.Bind(b)
b.Frame = frame
for i := 0; i < m; i++ {
b.wch <- struct{}{}
}
return b
}
示例4: Start
func (a *Conn) Start(frame trace.Frame, id chainID, addr net.Addr, linker linker, scrb func()) {
frame.Bind(a)
a.frame = frame
a.scrb = scrb
a.id = id
a.addr = addr
a.linker = linker
a.cascade = MakeCascade(frame)
// A buffer size 1 on rch, helps remove a deadlock in the TestConn.
// Essentially it ensures that Read and Write (on two ends of a
// connection) cannot deadlock each other when a successful Write also
// requires a stitch. We throw in a couple of extra buffer spaces to
// prevent any potential deadlock between Read and Kill.
a.rch = make(chan interface{}, 3)
a.kch = make(chan struct{})
go a.readLoop()
}