当前位置: 首页>>代码示例>>Golang>>正文


Golang Frame.Refine方法代码示例

本文整理汇总了Golang中github.com/gocircuit/circuit/kit/tele/trace.Frame.Refine方法的典型用法代码示例。如果您正苦于以下问题:Golang Frame.Refine方法的具体用法?Golang Frame.Refine怎么用?Golang Frame.Refine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/gocircuit/circuit/kit/tele/trace.Frame的用法示例。


在下文中一共展示了Frame.Refine方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:9,代码来源:transport.go

示例2: NewSievePipe

// NewSievePipe returns the two net.Conn endpoints of a new bi-directional drop tail pipe.
func NewSievePipe(f0, f1 trace.Frame, a0, a1 net.Addr, nok, ndrop int, expa, expb time.Duration) (p, q net.Conn) {
	a, b := NewHalfConn(f0), NewHalfConn(f1)
	ax, bx, xa, xb := newChan(), newChan(), newChan(), newChan()
	axk, bxk := newBackChan(), newBackChan()
	a.RecvFrom(xa, a1)
	b.RecvFrom(xb, a0)
	a.SendTo(ax, axk, a0)
	b.SendTo(bx, bxk, a1)
	ab, ba := StartSieve(f0.Refine("sieve"), f1.Refine("sieve"), ax, bx, xa, xb, axk, bxk, nok, ndrop, expa, expb)
	a.in, a.out = ba, ab
	b.in, b.out = ab, ba
	return a, b
}
开发者ID:prodigeni,项目名称:circuit,代码行数:14,代码来源:middle.go

示例3: NewConn

func NewConn(frame trace.Frame, under *chain.Conn) *Conn {

	// Only 1 needed in readLoop; get 3 just to be safe
	rch := make(chan interface{}, 3)
	// Capacity 1 (below) unblocks writeSync, invoked in readLoop right after a connection stitch
	// stitch is received, racing with a user write waiting on waitForLink.
	// In particular, if execUserWrite is waiting on waitForLink, it would prevent readLoop from
	// moving on to adopt the new connection.
	sch := make(chan *control, 1)
	// Abort channel
	ach := make(chan struct{})

	// User-facing Conn
	c := &Conn{
		frame: frame,
		sub:   under,
		rch:   rch,
		ach:   ach,
		bfr:   NewBuffer(frame.Refine("buffer"), MemoryCap),
	}
	c.frame.Bind(c)

	// readConn
	rc := &readConn{
		frame: frame.Refine("R∞"),
		sub:   c.sub,
		rch:   rch,
		sch:   sch,
		ach:   ach,
		bfr:   c.bfr,
	}
	rc.frame.Bind(rc)
	go rc.loop()

	// writeConn
	wc := &writeConn{
		frame: frame.Refine("W∞"),
		sub:   c.sub,
		bfr:   c.bfr,
		sch:   sch,
	}
	wc.frame.Bind(wc)
	go wc.loop()
	return c
}
开发者ID:prodigeni,项目名称:circuit,代码行数:45,代码来源:conn.go


注:本文中的github.com/gocircuit/circuit/kit/tele/trace.Frame.Refine方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。