blob: 67cce9f6ad629b5432574ab97fedd9009e7a5d36 [file] [log] [blame]
package com.google.net.stubby.http2.okhttp;
import com.google.net.stubby.Request;
import com.google.net.stubby.RequestRegistry;
import com.google.net.stubby.Response;
import com.google.net.stubby.Status;
import com.google.net.stubby.transport.Framer;
import com.google.net.stubby.transport.Transport;
import com.squareup.okhttp.internal.spdy.FrameWriter;
import com.squareup.okhttp.internal.spdy.Header;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
* A HTTP2 based implementation of {@link Request}
*/
public class Http2Request extends Http2Operation implements Request {
private final Response response;
public Http2Request(FrameWriter frameWriter, String operationName,
Map<String, String> headers,
Response response, RequestRegistry requestRegistry,
Framer framer) {
super(response.getId(), frameWriter, framer);
this.response = response;
try {
// Register this request.
requestRegistry.register(this);
List<Header> requestHeaders = Headers.createRequestHeaders(operationName);
for (Map.Entry<String, String> entry : headers.entrySet()) {
requestHeaders.add(new Header(entry.getKey(), entry.getValue()));
}
frameWriter.synStream(false, false, getId(), 0, requestHeaders);
} catch (IOException ioe) {
close(new Status(Transport.Code.UNKNOWN, ioe));
}
}
@Override
public Response getResponse() {
return response;
}
}