blob: e92e96de6a6d0834d6567fd0e82d86e3eaedb691 [file] [log] [blame]
package com.google.net.stubby;
import com.google.common.util.concurrent.AbstractService;
import com.google.net.stubby.newtransport.ClientStream;
import com.google.net.stubby.newtransport.ClientTransport;
import com.google.net.stubby.newtransport.StreamListener;
/**
* Shim between Session and Channel. Will be removed when Session is removed.
*/
public class SessionClientTransport extends AbstractService implements ClientTransport {
private final Session session;
public SessionClientTransport(Session session) {
this.session = session;
}
@Override
protected void doStart() {
notifyStarted();
}
@Override
public void doStop() {
notifyStopped();
}
@Override
public ClientStream newStream(MethodDescriptor<?, ?> method,
Metadata.Headers headers,
StreamListener listener) {
final SessionClientStream stream = new SessionClientStream(listener);
Request request = session.startRequest(method.getName(), headers,
stream.responseBuilder());
stream.start(request);
return stream;
}
}