package com.android.server.wifi.anqp; import com.android.server.wifi.hotspot2.Utils; import java.net.ProtocolException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; import java.util.Collections; import java.util.List; import static com.android.server.wifi.anqp.Constants.BYTE_MASK; import static com.android.server.wifi.anqp.Constants.getInteger; /** * The Roaming Consortium ANQP Element, IEEE802.11-2012 section 8.4.4.7 */ public class RoamingConsortiumElement extends ANQPElement { private final List<Long> mOis; public RoamingConsortiumElement(Constants.ANQPElementType infoID, ByteBuffer payload) throws ProtocolException { super(infoID); mOis = new ArrayList<Long>(); while (payload.hasRemaining()) { int length = payload.get() & BYTE_MASK; if (length > payload.remaining()) { throw new ProtocolException("Bad OI length: " + length); } mOis.add(getInteger(payload, ByteOrder.BIG_ENDIAN, length)); } } public List<Long> getOIs() { return Collections.unmodifiableList(mOis); } @Override public String toString() { return "RoamingConsortium{mOis=[" + Utils.roamingConsortiumsToString(mOis) + "]}"; } }