58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
// Copyright 2026 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package http2
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
)
|
|
|
|
func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) {
|
|
return cc.roundTrip(req)
|
|
}
|
|
|
|
// SetDoNotReuse marks cc as not reusable for future HTTP requests.
|
|
func (cc *ClientConn) SetDoNotReuse() {
|
|
cc.setDoNotReuse()
|
|
}
|
|
|
|
// CanTakeNewRequest reports whether the connection can take a new request,
|
|
// meaning it has not been closed or received or sent a GOAWAY.
|
|
//
|
|
// If the caller is going to immediately make a new request on this
|
|
// connection, use ReserveNewRequest instead.
|
|
func (cc *ClientConn) CanTakeNewRequest() bool {
|
|
return cc.canTakeNewRequest()
|
|
}
|
|
|
|
// ReserveNewRequest is like CanTakeNewRequest but also reserves a
|
|
// concurrent stream in cc. The reservation is decremented on the
|
|
// next call to RoundTrip.
|
|
func (cc *ClientConn) ReserveNewRequest() bool {
|
|
return cc.reserveNewRequest()
|
|
}
|
|
|
|
// State returns a snapshot of cc's state.
|
|
func (cc *ClientConn) State() ClientConnState {
|
|
return cc.state()
|
|
}
|
|
|
|
// Shutdown gracefully closes the client connection, waiting for running streams to complete.
|
|
func (cc *ClientConn) Shutdown(ctx context.Context) error {
|
|
return cc.shutdown(ctx)
|
|
}
|
|
|
|
// Close closes the client connection immediately.
|
|
//
|
|
// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
|
|
func (cc *ClientConn) Close() error {
|
|
return cc.close()
|
|
}
|
|
|
|
// Ping sends a PING frame to the server and waits for the ack.
|
|
func (cc *ClientConn) Ping(ctx context.Context) error {
|
|
return cc.ping(ctx)
|
|
}
|