1
0
mirror of https://github.com/golang/go synced 2024-11-21 21:04:41 -07:00

http: rename ClientTransport to Transport

http.Transport looks nicer, and ServerTransport
doesn't make much sense anyway.

R=rsc
CC=golang-dev
https://golang.org/cl/4239056
This commit is contained in:
Brad Fitzpatrick 2011-03-04 11:41:57 -08:00
parent da679db0f1
commit 7b563be516
2 changed files with 17 additions and 16 deletions

View File

@ -20,15 +20,15 @@ import (
// that uses DefaultTransport. // that uses DefaultTransport.
// Client is not yet very configurable. // Client is not yet very configurable.
type Client struct { type Client struct {
Transport ClientTransport // if nil, DefaultTransport is used Transport Transport // if nil, DefaultTransport is used
} }
// DefaultClient is the default Client and is used by Get, Head, and Post. // DefaultClient is the default Client and is used by Get, Head, and Post.
var DefaultClient = &Client{} var DefaultClient = &Client{}
// ClientTransport is an interface representing the ability to execute a // Transport is an interface representing the ability to execute a
// single HTTP transaction, obtaining the Response for a given Request. // single HTTP transaction, obtaining the Response for a given Request.
type ClientTransport interface { type Transport interface {
// Do executes a single HTTP transaction, returning the Response for the // Do executes a single HTTP transaction, returning the Response for the
// request req. Do should not attempt to interpret the response. // request req. Do should not attempt to interpret the response.
// In particular, Do must return err == nil if it obtained a response, // In particular, Do must return err == nil if it obtained a response,
@ -104,7 +104,7 @@ func (c *Client) Do(req *Request) (resp *Response, err os.Error) {
// TODO: support persistent connections (multiple requests on a single connection). // TODO: support persistent connections (multiple requests on a single connection).
// send() method is nonpublic because, when we refactor the code for persistent // send() method is nonpublic because, when we refactor the code for persistent
// connections, it may no longer make sense to have a method with this signature. // connections, it may no longer make sense to have a method with this signature.
func send(req *Request, t ClientTransport) (resp *Response, err os.Error) { func send(req *Request, t Transport) (resp *Response, err os.Error) {
if t == nil { if t == nil {
t = DefaultTransport t = DefaultTransport
if t == nil { if t == nil {
@ -115,7 +115,7 @@ func send(req *Request, t ClientTransport) (resp *Response, err os.Error) {
// Most the callers of send (Get, Post, et al) don't need // Most the callers of send (Get, Post, et al) don't need
// Headers, leaving it uninitialized. We guarantee to the // Headers, leaving it uninitialized. We guarantee to the
// ClientTransport that this has been initialized, though. // Transport that this has been initialized, though.
if req.Header == nil { if req.Header == nil {
req.Header = Header(make(map[string][]string)) req.Header = Header(make(map[string][]string))
} }

View File

@ -15,18 +15,19 @@ import (
"sync" "sync"
) )
// DefaultTransport is the default implementation of ClientTransport // DefaultTransport is the default implementation of Transport and is
// and is used by DefaultClient. It establishes a new network connection for // used by DefaultClient. It establishes a new network connection for
// each call to Do and uses HTTP proxies as directed by the $HTTP_PROXY and // each call to Do and uses HTTP proxies as directed by the
// $NO_PROXY (or $http_proxy and $no_proxy) environment variables. // $HTTP_PROXY and $NO_PROXY (or $http_proxy and $no_proxy)
var DefaultTransport ClientTransport = &transport{} // environment variables.
var DefaultTransport Transport = &transport{}
// transport implements http.ClientTranport for the default case, // transport implements Tranport for the default case, using TCP
// using TCP connections to either the host or a proxy, serving // connections to either the host or a proxy, serving http or https
// http or https schemes. In the future this may become public // schemes. In the future this may become public and support options
// and support options on keep-alive connection duration, pipelining // on keep-alive connection duration, pipelining controls, etc. For
// controls, etc. For now this is simply a port of the old Go code // now this is simply a port of the old Go code client code to the
// client code to the http.ClientTransport interface. // Transport interface.
type transport struct { type transport struct {
// TODO: keep-alives, pipelining, etc using a map from // TODO: keep-alives, pipelining, etc using a map from
// scheme/host to a connection. Something like: // scheme/host to a connection. Something like: