コード例 #1
0
ファイル: lossinterval.go プロジェクト: hashken/GoDCCP
func (t *evolveInterval) Init(amb *dccp.Amb, push pushIntervalFunc) {
	t.amb = amb.Refine("evolveInterval")
	t.push = push
	t.lastSeqNo = 0
	t.lastTime = 0
	t.lastRTT = 0
	t.clearInterval()
}
コード例 #2
0
ファイル: roundtrip.go プロジェクト: hashken/GoDCCP
// Init resets the senderRoundtripEstimator object for new use
func (t *senderRoundtripEstimator) Init(amb *dccp.Amb) {
	t.amb = amb.Refine("senderRoundtripEstimator")
	t.estimate = 0
	t.k = 0
	for i, _ := range t.history {
		t.history[i] = sendTime{} // Zero Time indicates no data
	}
}
コード例 #3
0
ファイル: x.go プロジェクト: hashken/GoDCCP
// Init resets the rate calculator for new use and returns the initial
// allowed sending rate (in bytes per second). The latter is the rate
// to be used before the first feedback packet is received and hence before
// an RTT estimate is available.
func (t *senderRateCalculator) Init(amb *dccp.Amb, ss uint32, rtt int64) {
	t.amb = amb.Refine("senderRateCalculator")
	// The allowed sending rate before the first feedback packet is received
	// is one packet per second.
	t.x = ss
	t.recoverRate = ss
	// tld = 0 indicates that the first feedback packet has yet not been received.
	t.tld = 0
	// Because X_recv_set is initialized with a single item, with value Infinity, recvLimit is
	// set to Infinity for the first two round-trip times of the connection.  As a result, the
	// sending rate is not limited by the receive rate during that period.  This avoids the
	// problem of the sending rate being limited by the value of X_recv from the first feedback
	// packet.
	t.recvLimit = X_RECV_MAX
	t.hasFeedback = false
	t.lossRateInv = UnknownLossEventRateInv
	t.ss = ss
	t.rtt = rtt
	t.xRecvSet.Init()
}
コード例 #4
0
ファイル: roundtrip.go プロジェクト: hashken/GoDCCP
// Init initializes the RTT estimator
func (t *receiverRoundtripEstimator) Init(amb *dccp.Amb) {
	t.amb = amb.Refine("receiverRoundtripEstimator")
	t.rtt = 0
	t.rttTime = 0
}
コード例 #5
0
ファイル: receiver.go プロジェクト: niltonkummer/GoDCCP
func newReceiver(env *dccp.Env, amb *dccp.Amb) *receiver {
	return &receiver{env: env, amb: amb.Refine("receiver")}
}
コード例 #6
0
ファイル: sender.go プロジェクト: hashken/GoDCCP
func newSender(env *dccp.Env, amb *dccp.Amb) *sender {
	return &sender{env: env, amb: amb.Refine("sender")}
}
コード例 #7
0
ファイル: strober.go プロジェクト: niltonkummer/GoDCCP
// Init resets the senderStrober instance for new use
func (s *senderStrober) Init(env *dccp.Env, amb *dccp.Amb, bps uint32, ss uint32) {
	s.env = env
	s.amb = amb.Refine("strober")
	s.SetRate(bps, ss)
}
コード例 #8
0
ファイル: senderloss.go プロジェクト: niltonkummer/GoDCCP
// Init resets the senderLossTracker instance for new use
func (t *senderLossTracker) Init(amb *dccp.Amb) {
	t.amb = amb.Refine("senderLossTracker")
	t.lastAckNo = 0
	t.lastRateInv = UnknownLossEventRateInv
	t.lossRateCalculator.Init(NINTERVAL)
}