bandwidthinstance.java
来自「270的linux说明」· Java 代码 · 共 682 行 · 第 1/2 页
JAVA
682 行
{ long socketId = getSocketId(socket); return GetSessionPercentTxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public float GetSessionPercentTx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionPercentTxNative(socketId); } /** * Gets the maximum percentage of bandwidth the socket can transmit on network devices. * @param socket * @return * @throws IntelMobileException */ public float GetSessionPercentRx(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionPercentRxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public float GetSessionPercentRx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionPercentRxNative(socketId); } /** * (bps) Gets the maximum bits per second the given socket can transmit over network devices. * This function returns the ?effective limit?, which is the lower of the limits set by the application execution policy, the process policy, or the system. * @param socket * @return * @throws IntelMobileException */ public float GetEffectiveSessionLimitTx(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetEffectiveSessionLimitTxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public float GetEffectiveSessionLimitTx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetEffectiveSessionLimitTxNative(socketId); } /** * (bps) Gets the maximum bits per second the socket can receive over network devices. * This function returns the ?effective limit?, which is the lower of the limits set by the application execution policy, the process policy, or the system. * @param socket * @return * @throws IntelMobileException */ public float GetEffectiveSessionLimitRx(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetEffectiveSessionLimitRxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public float GetEffectiveSessionLimitRx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetEffectiveSessionLimitRxNative(socketId); } /** * If true, the limits for this connection can be adaptive. If false, percent-based functions shouldn?t be used. * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionAdaptivelyLimitable(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionAdaptivelyLimitableNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionAdaptivelyLimitable(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionAdaptivelyLimitableNative(socketId); } /** * If true, the bandwidth limits automatically change proportional to the change in the link speed. * For example, if the link speed doubles, the limit doubles as well. * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionAdaptive(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionAdaptiveNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionAdaptive(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionAdaptiveNative(socketId); } /** * Turns the adaptive mode for a connection on or off. * @param socket * @param isAdaptive A setting isAdaptive = true, turns on adaptive mode. It is turned off otherwise. * @return * @throws IntelMobileException */ public boolean SetSessionAdaptive(Socket socket, boolean isAdaptive) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionAdaptiveNative(socketId, isAdaptive); } /** * For DatagramSocket * @param socket * @param isAdaptive * @return * @throws IntelMobileException */ public boolean SetSessionAdaptive(DatagramSocket socket, boolean isAdaptive) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionAdaptiveNative(socketId, isAdaptive); } /** * If the return value is true, the limit for socketid is currently being enforced when sending data. * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionLimitedTx(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionLimitedTxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionLimitedTx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionLimitedTxNative(socketId); } /** * If the return value is true, the limit for socketid is currently being enforced when receiving data. * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionLimitedRx(Socket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionLimitedRxNative(socketId); } /** * For DatagramSocket * @param socket * @return * @throws IntelMobileException */ public boolean GetSessionLimitedRx(DatagramSocket socket) throws IntelMobileException { long socketId = getSocketId(socket); return GetSessionLimitedRxNative(socketId); } /** * Enables or disables enforcement of a connection limit for sending data. * @param socket * @param isLimited Setting isLimited = true turns on the limit enforcement. It is turned off otherwise. * @return * @throws IntelMobileException */ public boolean SetSessionLimitedTx(Socket socket, boolean isLimited) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionLimitedTxNative(socketId, isLimited); } /** * For DatagramSocket. * @param socket * @param isLimited * @return * @throws IntelMobileException */ public boolean SetSessionLimitedTx(DatagramSocket socket, boolean isLimited) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionLimitedTxNative(socketId, isLimited); } /** * Enables or disables enforcement of a connection limit for receiving data. * @param socket * @param isLimited Setting isLimited = true turns on the limit enforcement. It is turned off otherwise. * @return * @throws IntelMobileException */ public boolean SetSessionLimitedRx(Socket socket, boolean isLimited) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionLimitedRxNative(socketId, isLimited); } /** * For DatagramSocket. * @param socket * @param isLimited * @return * @throws IntelMobileException */ public boolean SetSessionLimitedRx(DatagramSocket socket, boolean isLimited) throws IntelMobileException { long socketId = getSocketId(socket); return SetSessionLimitedRxNative(socketId, isLimited); } // internal use private long getSocketId(Socket socket) throws IntelMobileException { InetAddress addr = socket.getLocalAddress(); int port = socket.getLocalPort(); if (addr.isAnyLocalAddress() || port == -1) { // not connected ThrowNotConnectNative(); } return getSocketId(addr, port); } // internal use private long getSocketId(DatagramSocket socket) { InetAddress addr = socket.getLocalAddress(); int port = socket.getLocalPort(); return getSocketId(addr, port); } // internal use private long getSocketId(InetAddress addr, int port) { byte[] _rawIP = addr.getAddress(); long[] rawIP = new long[4]; for (int i = 0; i < 4; i++) { if (_rawIP[i] < 0) rawIP[i] = _rawIP[i] + 256; else rawIP[i] = _rawIP[i]; } long socketId = rawIP[3] << 24; socketId += rawIP[2] << 16; socketId += rawIP[1] << 8; socketId += rawIP[0]; socketId = (socketId << 32) + port; return socketId; } private native void init(long objRef) throws IntelMobileException; private static native void ThrowNotConnectNative() throws IntelMobileException; private native boolean SetSessionLimitTxNative( long socketid, float MaxKBitsPerSec ) throws IntelMobileException; private native boolean SetSessionLimitRxNative( long socketid, float MaxKBitsPerSec ) throws IntelMobileException; private native boolean SetSessionPercentTxNative( long socketid, float MaxPercentage ) throws IntelMobileException; private native boolean SetSessionPercentRxNative( long socketid, float MaxPercentage ) throws IntelMobileException; private native float GetSessionLimitTxNative( long socketid ) throws IntelMobileException; private native float GetSessionLimitRxNative( long socketid ) throws IntelMobileException; private native float GetSessionRateTxNative( long socketid ) throws IntelMobileException; private native float GetSessionRateRxNative( long socketid ) throws IntelMobileException; private native long GetSessionTotalBytesTxNative( long socketid ) throws IntelMobileException; private native long GetSessionTotalBytesRxNative( long socketid ) throws IntelMobileException; private native float GetSessionPercentTxNative( long socketid ) throws IntelMobileException; private native float GetSessionPercentRxNative( long socketid ) throws IntelMobileException; private native float GetEffectiveSessionLimitTxNative( long socketid ) throws IntelMobileException; private native float GetEffectiveSessionLimitRxNative( long socketid ) throws IntelMobileException; private native boolean GetSessionAdaptivelyLimitableNative( long socketid ) throws IntelMobileException; private native boolean GetSessionAdaptiveNative( long socketid ) throws IntelMobileException; private native boolean SetSessionAdaptiveNative( long socketid, boolean isAdaptive ) throws IntelMobileException; private native boolean GetSessionLimitedTxNative( long socketid ) throws IntelMobileException; private native boolean GetSessionLimitedRxNative( long socketid ) throws IntelMobileException; private native boolean SetSessionLimitedTxNative( long socketid, boolean isLimited ) throws IntelMobileException; private native boolean SetSessionLimitedRxNative( long socketid, boolean isLimited ) throws IntelMobileException;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?