45 lines
		
	
	
		
			621 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			621 B
		
	
	
	
		
			Go
		
	
	
	
package l_request
 | 
						|
 | 
						|
import (
 | 
						|
	"sync"
 | 
						|
)
 | 
						|
 | 
						|
type RequestPool struct {
 | 
						|
	pool sync.Pool
 | 
						|
}
 | 
						|
 | 
						|
var RequestPools = &RequestPool{
 | 
						|
	pool: sync.Pool{
 | 
						|
		New: func() interface{} {
 | 
						|
			return new(Request)
 | 
						|
		},
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
func (re *RequestPool) Get() *Request {
 | 
						|
	return re.pool.Get().(*Request)
 | 
						|
}
 | 
						|
 | 
						|
func (re *RequestPool) Put(r *Request) {
 | 
						|
	re.pool.Put(r)
 | 
						|
}
 | 
						|
 | 
						|
// 重置对象
 | 
						|
func (re *RequestPool) Reset(r *Request) {
 | 
						|
	r.Method = ""
 | 
						|
	r.Url = ""
 | 
						|
	r.Params = nil
 | 
						|
	r.Headers = nil
 | 
						|
	r.Cookies = nil
 | 
						|
	r.Data = nil
 | 
						|
	r.Json = nil
 | 
						|
	r.Files = nil
 | 
						|
	r.Raw = ""
 | 
						|
	r.JsonByte = nil
 | 
						|
}
 | 
						|
 | 
						|
func (re *RequestPool) ClearAndPut(r *Request) {
 | 
						|
	re.Reset(r)
 | 
						|
	re.Put(r)
 | 
						|
}
 |