blob: 7aed761b62e50708f24638706c08b71c0c358859 [file] [log] [blame]
// Copyright 2015 The Chromium 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 org.domokit.oknet;
import android.content.Context;
import com.squareup.okhttp.OkHttpClient;
import org.chromium.mojo.bindings.InterfaceRequest;
import org.chromium.mojo.system.Core;
import org.chromium.mojo.system.DataPipe;
import org.chromium.mojo.system.MessagePipeHandle;
import org.chromium.mojo.system.MojoException;
import org.chromium.mojom.mojo.CookieStore;
import org.chromium.mojom.mojo.NetAddress;
import org.chromium.mojom.mojo.NetworkService;
import org.chromium.mojom.mojo.TcpBoundSocket;
import org.chromium.mojom.mojo.TcpConnectedSocket;
import org.chromium.mojom.mojo.UdpSocket;
import org.chromium.mojom.mojo.UrlLoader;
import org.chromium.mojom.mojo.WebSocket;
/**
* OkHttp implementation of NetworkService.
*/
public class NetworkServiceImpl implements NetworkService {
private OkHttpClient mClient;
private Core mCore;
public NetworkServiceImpl(Context context, Core core, MessagePipeHandle pipe) {
assert core != null;
mCore = core;
mClient = new OkHttpClient();
NetworkService.MANAGER.bind(this, pipe);
}
@Override
public void close() {}
@Override
public void onConnectionError(MojoException e) {}
@Override
public void createUrlLoader(InterfaceRequest<UrlLoader> loader) {
UrlLoader.MANAGER.bind(new UrlLoaderImpl(mCore, mClient), loader);
}
@Override
public void getCookieStore(InterfaceRequest<CookieStore> cookieStore) {
cookieStore.close();
}
@Override
public void createWebSocket(InterfaceRequest<WebSocket> socket) {
socket.close();
}
@Override
public void createTcpBoundSocket(NetAddress localAddress,
InterfaceRequest<TcpBoundSocket> boundSocket, CreateTcpBoundSocketResponse callback) {
boundSocket.close();
}
@Override
public void createTcpConnectedSocket(NetAddress remoteAddress,
DataPipe.ConsumerHandle sendStream, DataPipe.ProducerHandle receiveStream,
InterfaceRequest<TcpConnectedSocket> clientSocket,
CreateTcpConnectedSocketResponse callback) {
sendStream.close();
receiveStream.close();
clientSocket.close();
}
@Override
public void createUdpSocket(InterfaceRequest<UdpSocket> socket) {
socket.close();
}
}