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