module hunt.http.client.HttpClientConnection; import hunt.http.client.ClientHttpHandler; import hunt.http.client.Http2ClientConnection; import hunt.http.codec.http.frame.SettingsFrame; import hunt.http.HttpOutputStream; import hunt.http.HttpRequest; import hunt.http.HttpResponse; import hunt.http.HttpConnection; import hunt.http.WebSocketConnection; import hunt.http.WebSocketPolicy; import hunt.concurrency.Promise; import hunt.io.ByteBuffer; import hunt.collection.Collection; // alias Response = HttpResponse; interface HttpClientConnection : HttpConnection { void send(HttpRequest request, Promise!(HttpOutputStream) promise, ClientHttpHandler handler); void send(HttpRequest request, ClientHttpHandler handler); void send(HttpRequest request, ByteBuffer buffer, ClientHttpHandler handler); void send(HttpRequest request, ByteBuffer[] buffers, ClientHttpHandler handler); // void send(HttpRequest request, Collection!ByteBuffer buffers, ClientHttpHandler handler); HttpOutputStream sendRequestWithContinuation(HttpRequest request, ClientHttpHandler handler); HttpOutputStream getHttpOutputStream(HttpRequest request, ClientHttpHandler handler); void upgradeHttp2(HttpRequest request, SettingsFrame settings, Promise!(HttpClientConnection) promise, ClientHttpHandler upgradeHandler, ClientHttpHandler http2ResponseHandler); void upgradeWebSocket(HttpRequest request, WebSocketPolicy policy, Promise!(WebSocketConnection) promise, ClientHttpHandler upgradeHandler, IncomingFrames incomingFrames); }