stathat.go
func NewReporter(bufferSize, poolSize int, transport http.RoundTripper) Reporter {
	r := new(BasicReporter)
	if transport == nil {
		transport = &http.Transport{
			// Allow for an idle connection per goroutine.
			MaxIdleConnsPerHost: poolSize,
		}
	}
	r.client = &http.Client{Transport: transport}
	r.reports = make(chan *statReport, bufferSize)
	r.done = make(chan bool)
	r.wg = new(sync.WaitGroup)
	for i := 0; i < poolSize; i++ {
		r.wg.Add(1)
		go r.processReports()
	}
	return r
}
func NewReporter(bufferSize, poolSize int, transport http.RoundTripper) Reporter {
	r := new(BasicReporter)
	if transport == nil {
		transport = &http.Transport{
			// Allow for an idle connection per goroutine.
			MaxIdleConnsPerHost: poolSize,
		}
	}
	r.client = &http.Client{Transport: transport}
	r.reports = make(chan *statReport, bufferSize)
	r.done = make(chan bool)
	r.wg = new(sync.WaitGroup)
	for i := 0; i < poolSize; i++ {
		r.wg.Add(1)
		go r.processReports()
	}
	return r
}
func NewReporter ( bufferSize , poolSize int , transport http . RoundTripper ) Reporter { r := new ( BasicReporter ) if transport == nil { transport = & http . Transport { // Allow for an idle connection per goroutine. MaxIdleConnsPerHost : poolSize , } } r . client = & http . Client { Transport : transport } r . reports = make ( chan * statReport , bufferSize ) r . done = make ( chan bool ) r . wg = new ( sync . WaitGroup ) for i := 0 ; i < poolSize ; i ++ { r . wg . Add ( 1 ) go r . processReports ( ) } return r }
// NewReporter returns a new Reporter.  You must specify the channel bufferSize and the
// goroutine poolSize.  You can pass in nil for the transport and it will create an
// http transport with MaxIdleConnsPerHost set to the goroutine poolSize.  Note if you
// pass in your own transport, it's a good idea to have its MaxIdleConnsPerHost be set
// to at least the poolSize to allow for effective connection reuse.
NewReporter returns a new Reporter . You must specify the channel bufferSize and the goroutine poolSize . You can pass in nil for the transport and it will create an http transport with MaxIdleConnsPerHost set to the goroutine poolSize . Note if you pass in your own transport it s a good idea to have its MaxIdleConnsPerHost be set to at least the poolSize to allow for effective connection reuse .