public class Asn1NasDecodeBuffer extends Asn1DecodeBitBuffer
| Modifier and Type | Field and Description |
|---|---|
static int |
DOWNLINK |
int |
mDirection
3GPP Release Version.
|
int |
mVersion
3GPP Release Version.
|
static int |
UPLINK |
mTraceHandlermByteCountcontext, mTypeCode| Constructor and Description |
|---|
Asn1NasDecodeBuffer(byte[] msgdata)
This constructor creates a NAS decode buffer object that
references an encoded message.
|
Asn1NasDecodeBuffer(java.io.InputStream istream)
This constructor creates a NAS decode buffer object that
references an encoded message.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
containerHasMoreBits()
Return true if there are more bits to be read in the current
length-constrained container, which is possibly the outer PDU.
|
int |
decodeAltDetmnt(int detmntBits,
int lhmask)
Decode an alternative determinant value in the given number of bits,
translating L/H bits according to the pattern 0x2B and based on the
buffer's bit offset.
|
java.lang.String |
decodeAPN()
Decode an APN string, following TS 24.008 and TS 23.003, and returning
it in dot-notation (a.b.c) format.
|
void |
decodeL3NonImperative(boolean callCtrl)
This function decodes the non-imperative part of an L3 message having
an empty non-imperative part.
|
void |
decodeMCCMNC(Asn1IA5String mcc,
Asn1IA5String mnc)
Decode an MCC-MNC pair.
|
java.lang.String |
decodeMobileIdentityType1(int len,
boolean odd,
byte digit1)
This function is used to decode common data present in different
alternatives within the MobileIdentify CHOICE type.
|
int |
decodeVarAltDetmnt(Asn1NasAltDecodeTabEntry[] table)
Decode a variable length alternative determinant according to the given
table.
|
long |
getContainerRemBits()
Return the number of bits remaining to be read in the current container.
|
boolean |
getPatternBit(byte pattern)
This function picks out the bit from the given pattern that corresponds
to the last bit read from this buffer.
|
boolean |
isInsideContainer()
Return true if a container length is on the container stack.
|
void |
popAllContainers()
Pop all containers from the container stack.
|
void |
popContainer()
Notify the runtime layer of the end of decoding of a length-constrained
container of the given length.
|
void |
pushContainerBits(long bits)
Notify the runtime layer of the start of decoding of a length-constrained
container of a given length.
|
void |
pushContainerBytes(long bytes)
Notify the runtime layer of the start of decoding of a length-constrained
container of a given length.
|
void |
skipToContainerEnd()
Skip all bits, up to and including the last bit of the container from
the top of the container stack.
|
binDump, binDump, byteAlign, decodeBit, decodeBitsToInt, decodeBitsToLong, decodeBitsToOctetArray, decodeBitsToOctetArray, getAvailableBits, getBitOffset, getBitOffsetInByte, getMsgBitCnt, getTraceHandler, hasMoreBits, mark, moveBitCursor, readByte, reset, setInputStream, skipBitsaddCaptureBuffer, capture, decodeIntValue, decodeOIDContents, decodeOIDContentsBig, decodeRelOIDContents, decodeRelOIDContentsBig, getByteCount, getInputStream, getLazyOpenTypeDecode, hexDump, init, read, read, read, read2Bytes, read4Bytes, removeCaptureBuffer, setLazyOpenTypeDecode, skip, skipOIDContents, skipRelOIDContentsaddNamedEventHandler, getEventHandlerListCount, hasEventHandlers, invokeCharacters, invokeEndElement, invokeStartElement, setEventHandlerListgetContext, hexDump, hexDump, setKey, setTypeCodeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetInputStreampublic int mVersion
public static final int DOWNLINK
public static final int UPLINK
public int mDirection
public Asn1NasDecodeBuffer(byte[] msgdata)
msgdata - Byte array containing an encoded message.public Asn1NasDecodeBuffer(java.io.InputStream istream)
istream - Input stream containing an encoded message.public final boolean containerHasMoreBits()
public final int decodeAltDetmnt(int detmntBits,
int lhmask)
throws java.io.IOException
detmntBits - The number of bits to decode.lhmask - A mask which indicates whether each bit in detmnt is a
0/1 bit or an L/H bit. L/H bits are represented in
detmnt using 0/1, respectively. This is left-aligned so
that the highest bit in the mask applies to the first
bit to be decoded.java.io.IOExceptionpublic java.lang.String decodeAPN()
throws java.io.IOException
java.io.IOExceptionpublic void decodeMCCMNC(Asn1IA5String mcc, Asn1IA5String mnc) throws java.io.IOException
mcc - Receives the MCCmnc - Receives the MNCjava.io.IOExceptionpublic int decodeVarAltDetmnt(Asn1NasAltDecodeTabEntry[] table) throws java.io.IOException
table - Controls decoding. See Asn1NasAltDecodeTabEntry.java.io.IOExceptionpublic void decodeL3NonImperative(boolean callCtrl)
throws Asn1UnknownIEI,
java.io.IOException
callCtrl - Boolean indicating this is a call control message.Asn1UnknownIEI - if an unknown comprehension required IE is found.java.io.IOExceptionpublic final java.lang.String decodeMobileIdentityType1(int len,
boolean odd,
byte digit1)
throws java.io.IOException
len - Length in bytes of the data to be decoded. This
includes 1 byte for the header.odd - Odd/even indicator boolean decoded from header.digit1 - First BCD character decoded from header.java.io.IOExceptionpublic final boolean getPatternBit(byte pattern)
public final long getContainerRemBits()
public final boolean isInsideContainer()
public final void pushContainerBytes(long bytes)
bytes - Number of bytes of the length-constrained container.public final void pushContainerBits(long bits)
bits - Number of bits in the length-constrained container.public final void popContainer()
public final void popAllContainers()
public final void skipToContainerEnd()
throws java.io.IOException,
Asn1EndOfBufferException
java.io.IOExceptionAsn1EndOfBufferException