| package com.android.server.wifi.anqp; |
| |
| import java.net.ProtocolException; |
| import java.nio.ByteBuffer; |
| import java.util.Arrays; |
| |
| /** |
| * The ANQP Capability List element, 802.11-2012 section 8.4.4.3 |
| */ |
| public class CapabilityListElement extends ANQPElement { |
| private final Constants.ANQPElementType[] mCapabilities; |
| |
| public CapabilityListElement(Constants.ANQPElementType infoID, ByteBuffer payload) |
| throws ProtocolException { |
| super(infoID); |
| if ((payload.remaining() & 1) == 1) |
| throw new ProtocolException("Odd length"); |
| mCapabilities = new Constants.ANQPElementType[payload.remaining() / Constants.BYTES_IN_SHORT]; |
| |
| int index = 0; |
| while (payload.hasRemaining()) { |
| int capID = payload.getShort() & Constants.SHORT_MASK; |
| Constants.ANQPElementType capability = Constants.mapANQPElement(capID); |
| if (capability == null) |
| throw new ProtocolException("Unknown capability: " + capID); |
| mCapabilities[index++] = capability; |
| } |
| } |
| |
| public Constants.ANQPElementType[] getCapabilities() { |
| return mCapabilities; |
| } |
| |
| @Override |
| public String toString() { |
| return "CapabilityList{" + |
| "mCapabilities=" + Arrays.toString(mCapabilities) + |
| '}'; |
| } |
| } |