public void decode(ByteBuffer bytes, int pos) {

    if (bytes.array() == null) {
      return;
    }
    if (bytes.order() != ByteOrder.LITTLE_ENDIAN) {
      bytes.order(ByteOrder.LITTLE_ENDIAN);
    }

    m_AppHeader.decode(bytes, pos);
    pos += m_AppHeader.getSize();
    m_Body.decode(bytes, pos);
    pos += m_Body.getSize();
  }