type spdyStreamExecutor … // NewSPDYExecutor connects to the provided server and upgrades the connection to // multiplexed bidirectional streams. func NewSPDYExecutor(config *restclient.Config, method string, url *url.URL) (Executor, error) { … } // NewSPDYExecutorRejectRedirects returns an Executor that will upgrade the future // connection to a SPDY bi-directional streaming connection when calling "Stream" (deprecated) // or "StreamWithContext" (preferred). Additionally, if the upstream server returns a redirect // during the attempted upgrade in these "Stream" calls, an error is returned. func NewSPDYExecutorRejectRedirects(transport http.RoundTripper, upgrader spdy.Upgrader, method string, url *url.URL) (Executor, error) { … } // NewSPDYExecutorForTransports connects to the provided server using the given transport, // upgrades the response using the given upgrader to multiplexed bidirectional streams. func NewSPDYExecutorForTransports(transport http.RoundTripper, upgrader spdy.Upgrader, method string, url *url.URL) (Executor, error) { … } // NewSPDYExecutorForProtocols connects to the provided server and upgrades the connection to // multiplexed bidirectional streams using only the provided protocols. Exposed for testing, most // callers should use NewSPDYExecutor or NewSPDYExecutorForTransports. func NewSPDYExecutorForProtocols(transport http.RoundTripper, upgrader spdy.Upgrader, method string, url *url.URL, protocols ...string) (Executor, error) { … } // Stream opens a protocol streamer to the server and streams until a client closes // the connection or the server disconnects. func (e *spdyStreamExecutor) Stream(options StreamOptions) error { … } // newConnectionAndStream creates a new SPDY connection and a stream protocol handler upon it. func (e *spdyStreamExecutor) newConnectionAndStream(ctx context.Context, options StreamOptions) (httpstream.Connection, streamProtocolHandler, error) { … } // StreamWithContext opens a protocol streamer to the server and streams until a client closes // the connection or the server disconnects or the context is done. func (e *spdyStreamExecutor) StreamWithContext(ctx context.Context, options StreamOptions) error { … }