19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.net;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19c7a98341b053bd8090accca151e8f3522f2dd126Wink Savilleimport android.content.Context;
20c7a98341b053bd8090accca151e8f3522f2dd126Wink Savilleimport android.os.Handler;
21665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwaltimport android.os.Messenger;
22665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
23665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwaltimport static com.android.internal.util.Protocol.BASE_NETWORK_STATE_TRACKER;
24c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
26c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * Interface provides the {@link com.android.server.ConnectivityService}
27c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * with three services. Events to the ConnectivityService when
28c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * changes occur, an API for controlling the network and storage
29c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * for network specific information.
30c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville *
31c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * The Connectivity will call startMonitoring before any other
32c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville * method is called.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
36d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriffpublic interface NetworkStateTracker {
3742acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
39c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
40c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Event Interface back to ConnectivityService.
41c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     *
42c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * The events that are to be sent back to the Handler passed
43c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * to startMonitoring when the particular event occurs.
44c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    /**
48c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * The network state has changed and the NetworkInfo object
49c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * contains the new state.
50c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     *
51c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.what = EVENT_STATE_CHANGED
52c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.obj = NetworkInfo object
53d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff     */
54665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_STATE_CHANGED = BASE_NETWORK_STATE_TRACKER;
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
57c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.what = EVENT_CONFIGURATION_CHANGED
58c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.obj = NetworkInfo object
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
60665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_CONFIGURATION_CHANGED = BASE_NETWORK_STATE_TRACKER + 1;
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
63c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.what = EVENT_RESTORE_DEFAULT_NETWORK
64c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * msg.obj = FeatureUser object
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
66665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_RESTORE_DEFAULT_NETWORK = BASE_NETWORK_STATE_TRACKER + 2;
6742acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
69d14e17627266ff8cf804d1f8241a0a4bde7a0ab4Robert Greenwalt     * msg.what = EVENT_NETWORK_SUBTYPE_CHANGED
70d14e17627266ff8cf804d1f8241a0a4bde7a0ab4Robert Greenwalt     * msg.obj = NetworkInfo object
71d14e17627266ff8cf804d1f8241a0a4bde7a0ab4Robert Greenwalt     */
72665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_NETWORK_SUBTYPE_CHANGED = BASE_NETWORK_STATE_TRACKER + 3;
73665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
74665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    /**
75665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * msg.what = EVENT_NETWORK_CONNECTED
76665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * msg.obj = LinkProperties object
77665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     */
78665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_NETWORK_CONNECTED = BASE_NETWORK_STATE_TRACKER + 4;
79665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
80665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    /**
81665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * msg.what = EVENT_NETWORK_CONNECTION_DISCONNECTED
82665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * msg.obj = LinkProperties object, same iface name
83665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     */
84665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public static final int EVENT_NETWORK_DISCONNECTED = BASE_NETWORK_STATE_TRACKER + 5;
85665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
86d14e17627266ff8cf804d1f8241a0a4bde7a0ab4Robert Greenwalt    /**
87c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
88c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Control Interface
89c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
92c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Begin monitoring data connectivity.
93c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     *
94c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * This is the first method called when this interface is used.
95c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     *
96c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * @param context is the current Android context
97c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * @param target is the Hander to which to return the events.
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
99c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public void startMonitoring(Context context, Handler target);
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
102c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Fetch NetworkInfo for the network
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
104c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public NetworkInfo getNetworkInfo();
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
107f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     * Return the LinkProperties for the connection.
108f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     *
109f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     * @return a copy of the LinkProperties, is never null.
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11137e65ebb7eb932e1a144b1cab262e11ca5fd109bRobert Greenwalt    public LinkProperties getLinkProperties();
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
114f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     * A capability is an Integer/String pair, the capabilities
115f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     * are defined in the class LinkSocket#Key.
116f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     *
117f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     * @return a copy of this connections capabilities, may be empty but never null.
118f61101f6266be243c481d163b95e65d67b8d1669Wink Saville     */
119f61101f6266be243c481d163b95e65d67b8d1669Wink Saville    public LinkCapabilities getLinkCapabilities();
120f61101f6266be243c481d163b95e65d67b8d1669Wink Saville
121f61101f6266be243c481d163b95e65d67b8d1669Wink Saville    /**
1221f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     * Get interesting information about this network link
1231f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     * @return a copy of link information, null if not available
1241f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     */
1256a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde    public LinkQualityInfo getLinkQualityInfo();
1261f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde
1271f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    /**
128c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Return the system properties name associated with the tcp buffer sizes
129c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * for this network.
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
131c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public String getTcpBufferSizesPropName();
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable connectivity to a network
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if a teardown occurred, {@code false} if the
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * teardown did not occur.
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
138d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    public boolean teardown();
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Reenable connectivity to a network after a {@link #teardown()}.
14202648a4b8422733ed401f07edf8e426318bb2f8dRobert Greenwalt     * @return {@code true} if we're connected or expect to be connected
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
144d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    public boolean reconnect();
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
147da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff     * Ready to switch on to the network after captive portal check
148da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff     */
149da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff    public void captivePortalCheckComplete();
150da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff
151da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff    /**
152d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville     * Captive portal check has completed
153d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville     */
154d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville    public void captivePortalCheckCompleted(boolean isCaptive);
155d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville
156d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville    /**
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Turn the wireless radio off for a network.
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param turnOn {@code true} to turn the radio on, {@code false}
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
160d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    public boolean setRadio(boolean turnOn);
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns an indication of whether this network is available for
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connections. A value of {@code false} means that some quasi-permanent
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * condition prevents connectivity to this network.
16612e24ae7600f8297abcde0d7c29d6cfb64f59dfbRobert Greenwalt     *
16712e24ae7600f8297abcde0d7c29d6cfb64f59dfbRobert Greenwalt     * NOTE that this is broken on multi-connection devices.  Should be fixed in J release
16812e24ae7600f8297abcde0d7c29d6cfb64f59dfbRobert Greenwalt     * TODO - fix on multi-pdp devices
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
170d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    public boolean isAvailable();
171d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff
172d649c12815bcf944b2c97371f3f60716a42a1557Irfan Sheriff    /**
1738e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     * User control of data connection through this network, typically persisted
1748e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     * internally.
175e798268f16ec6d0542616ea45ca0bb18ae2645eeWink Saville     */
1768e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey    public void setUserDataEnable(boolean enabled);
1778e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey
1788e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey    /**
1798e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     * Policy control of data connection through this network, typically not
1808e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     * persisted internally. Usually used when {@link NetworkPolicy#limitBytes}
1818e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     * is passed.
1828e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey     */
1838e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey    public void setPolicyDataEnable(boolean enabled);
184e798268f16ec6d0542616ea45ca0bb18ae2645eeWink Saville
185e798268f16ec6d0542616ea45ca0bb18ae2645eeWink Saville    /**
186c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
187c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Storage API used by ConnectivityService for saving
188c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Network specific information.
189c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * -------------------------------------------------------------
190c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
191c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
192c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
193c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Check if private DNS route is set for the network
194c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
195c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public boolean isPrivateDnsRouteSet();
196c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
197c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
198c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Set a flag indicating private DNS route is set
199c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
200c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public void privateDnsRouteSet(boolean enabled);
201c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
202c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
203c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Check if default route is set
204c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
205c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public boolean isDefaultRouteSet();
206c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
207c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
208c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Set a flag indicating default route is set for the network
209c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
210c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public void defaultRouteSet(boolean enabled);
211c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
212c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
213c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Check if tear down was requested
214c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
215c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public boolean isTeardownRequested();
216c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville
217c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    /**
218c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     * Indicate tear down requested from connectivity
219c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville     */
220c7a98341b053bd8090accca151e8f3522f2dd126Wink Saville    public void setTeardownRequested(boolean isRequested);
221d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
222d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
223d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * An external dependency has been met/unmet
224d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
225d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public void setDependencyMet(boolean met);
22669edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti
22769edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti    /**
22869edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti     * Informs the state tracker that another interface is stacked on top of it.
22969edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti     **/
23069edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti    public void addStackedLink(LinkProperties link);
23169edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti
23269edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti    /**
23369edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti     * Informs the state tracker that a stacked interface has been removed.
23469edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti     **/
23569edd64d9bf839428ce0a7723cd0f1deda98dc0dLorenzo Colitti    public void removeStackedLink(LinkProperties link);
236665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
237665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    /*
238665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * Called once to setup async channel between this and
239665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     * the underlying network specific code.
240665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt     */
241665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    public void supplyMessenger(Messenger messenger);
2421f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde
2431f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    /*
2441f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     * Network interface name that we'll lookup for sampling data
2451f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     */
2461f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    public String getNetworkInterfaceName();
2471f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde
2481f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    /*
2491f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     * Save the starting sample
2501f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     */
2511f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    public void startSampling(SamplingDataTracker.SamplingSnapshot s);
2521f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde
2531f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    /*
2541f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     * Save the ending sample
2551f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde     */
2561f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde    public void stopSampling(SamplingDataTracker.SamplingSnapshot s);
2571f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
259