Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b26e4441 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Add docs to Network"

parents 99774edc 85956263
Loading
Loading
Loading
Loading
+65 −1
Original line number Diff line number Diff line
@@ -20,20 +20,35 @@ import android.os.Parcelable;
import android.os.Parcel;

import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.net.SocketFactory;

/**
 * Identifies the Network.
 * Identifies a {@code Network}.  This is supplied to applications via
 * {@link ConnectivityManager#NetworkCallbacks} in response to
 * {@link ConnectivityManager#requestNetwork} or {@link ConnectivityManager#listenForNetwork}.
 * It is used to direct traffic to the given {@code Network}, either on a {@link Socket} basis
 * through a targeted {@link SocketFactory} or process-wide via {@link #bindProcess}.
 * @hide
 */
public class Network implements Parcelable {

    /**
     * @hide
     */
    public final int netId;

    /**
     * @hide
     */
    public Network(int netId) {
        this.netId = netId;
    }

    /**
     * @hide
     */
    public Network(Network that) {
        this.netId = that.netId;
    }
@@ -64,6 +79,45 @@ public class Network implements Parcelable {
        return InetAddress.getByNameOnNet(host, netId);
    }

    /**
     * Returns a {@link SocketFactory} bound to this network.  Any {@link Socket} created by
     * this factory will have its traffic sent over this {@code Network}.  Note that if this
     * {@code Network} ever disconnects, this factory and any {@link Socket} it produced in the
     * past or future will cease to work.
     *
     * @return a {@link SocketFactory} which produces {@link Socket} instances bound to this
     *         {@code Network}.
     */
    public SocketFactory socketFactory() {
        return null;
    }

    /**
     * Binds the current process to this network.  All sockets created in the future (and not
     * explicitly bound via a bound {@link SocketFactory} (see {@link Network#socketFactory})
     * will be bound to this network.  Note that if this {@code Network} ever disconnects
     * all sockets created in this way will cease to work.  This is by design so an application
     * doesn't accidentally use sockets it thinks are still bound to a particular {@code Network}.
     */
    public void bindProcess() {
    }

    /**
     * A static utility method to return any {@code Network} currently bound by this process.
     *
     * @return {@code Network} to which this process is bound.
     */
    public static Network getProcessBoundNetwork() {
        return null;
    }

    /**
     * Clear any process specific {@code Network} binding.  This reverts a call to
     * {@link Network#bindProcess}.
     */
    public static void unbindProcess() {
    }

    // implement the Parcelable interface
    public int describeContents() {
        return 0;
@@ -84,4 +138,14 @@ public class Network implements Parcelable {
                return new Network[size];
            }
    };

    public boolean equals(Object obj) {
        if (obj instanceof Network == false) return false;
        Network other = (Network)obj;
        return this.netId == other.netId;
    }

    public int hashCode() {
        return netId * 11;
    }
}