Direct-BT v3.3.0-1-gc2d430c
Direct-BT - Direct Bluetooth Programming.
Public Member Functions | Protected Member Functions | List of all members
direct_bt::AttFindByTypeValueRsp Class Referencefinal

BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.4 ATT_FIND_BY_TYPE_VALUE_RSP. More...

#include <ATTPDUTypes.hpp>

Inheritance diagram for direct_bt::AttFindByTypeValueRsp:
Collaboration diagram for direct_bt::AttFindByTypeValueRsp:

Public Member Functions

 AttFindByTypeValueRsp (const jau::nsize_t total_length)
 Create an incomplete response with maximal (MTU) length. More...
 
 AttFindByTypeValueRsp (const uint8_t *source, const jau::nsize_t length)
 
constexpr_cxx20 jau::nsize_t getElementCount () const noexcept
 Number of elements. More...
 
uint16_t getElementHandle (const jau::nsize_t elementIdx) const
 
uint16_t getElementHandleEnd (const jau::nsize_t elementIdx) const
 
jau::nsize_t getElementPDUOffset (const jau::nsize_t elementIdx) const noexcept
 
uint8_t const * getElementPtr (const jau::nsize_t elementIdx) const
 
constexpr jau::nsize_t getElementSize () const noexcept
 Returns element size, 4 octets. More...
 
std::string getName () const noexcept override
 
constexpr_cxx20 jau::nsize_t getPDUValueOffset () const noexcept override
 opcode More...
 
void setElementCount (const jau::nsize_t count)
 Fixate element count. More...
 
void setElementHandles (const jau::nsize_t elementIdx, const uint16_t handle, const uint16_t handle_end)
 
- Public Member Functions inherited from direct_bt::AttPDUMsg
 AttPDUMsg (AttPDUMsg &&o) noexcept=default
 
 AttPDUMsg (const AttPDUMsg &o)=default
 
 AttPDUMsg (const Opcode opc, const jau::nsize_t size)
 Persistent memory, w/ ownership . More...
 
 AttPDUMsg (const uint8_t *source, const jau::nsize_t size)
 Persistent memory, w/ ownership . More...
 
virtual ~AttPDUMsg () noexcept=default
 
constexpr jau::nsize_t getAuthSigSize () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
constexpr_cxx20 jau::nsize_t getMaxPDUValueSize (const jau::nsize_t mtu) const noexcept
 Returns the theoretical maximum value size of a PDU's attribute value. More...
 
virtual std::string getName () const noexcept
 
constexpr bool getOpAuthSigFlag () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
constexpr Opcode getOpcode () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
constexpr bool getOpCommandFlag () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
constexpr Opcode getOpMethod () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
constexpr_cxx20 jau::nsize_t getPDUMinSize () const noexcept
 Returns this PDU's minimum size, i.e. More...
 
constexpr jau::nsize_t getPDUParamSize () const noexcept
 ATT PDU Format Vol 3, Part F 3.3.1. More...
 
virtual constexpr_cxx20 jau::nsize_t getPDUValueOffset () const noexcept
 Returns the octet offset to the value segment in this PDU including the mandatory opcode, i.e. More...
 
constexpr_cxx20 jau::nsize_t getPDUValueSize () const noexcept
 Returns the net octet size of this PDU's attributes value, i.e. More...
 
AttPDUMsgoperator= (AttPDUMsg &&o) noexcept=delete
 
AttPDUMsgoperator= (const AttPDUMsg &o) noexcept=delete
 
virtual std::string toString () const noexcept
 

Protected Member Functions

std::string elementString (const jau::nsize_t idx) const
 
std::string valueString () const noexcept override
 
- Protected Member Functions inherited from direct_bt::AttPDUMsg
virtual std::string baseString () const noexcept
 
void check_range ()
 
void checkOpcode (const Opcode exp1, const Opcode exp2) const
 
void checkOpcode (const Opcode expected) const
 
virtual std::string valueString () const noexcept
 

Additional Inherited Members

- Public Types inherited from direct_bt::AttPDUMsg
enum class  Opcode : uint8_t {
  PDU_UNDEFINED = 0x00 , METHOD_MASK = 0x3F , COMMAND_FLAG = 0x40 , AUTH_SIGNATURE_FLAG = 0x80 ,
  ERROR_RSP = 0x01 , EXCHANGE_MTU_REQ = 0x02 , EXCHANGE_MTU_RSP = 0x03 , FIND_INFORMATION_REQ = 0x04 ,
  FIND_INFORMATION_RSP = 0x05 , FIND_BY_TYPE_VALUE_REQ = 0x06 , FIND_BY_TYPE_VALUE_RSP = 0x07 , READ_BY_TYPE_REQ = 0x08 ,
  READ_BY_TYPE_RSP = 0x09 , READ_REQ = 0x0A , READ_RSP = 0x0B , READ_BLOB_REQ = 0x0C ,
  READ_BLOB_RSP = 0x0D , READ_MULTIPLE_REQ = 0x0E , READ_MULTIPLE_RSP = 0x0F , READ_BY_GROUP_TYPE_REQ = 0x10 ,
  READ_BY_GROUP_TYPE_RSP = 0x11 , WRITE_REQ = 0x12 , WRITE_RSP = 0x13 , WRITE_CMD = WRITE_REQ + COMMAND_FLAG ,
  PREPARE_WRITE_REQ = 0x16 , PREPARE_WRITE_RSP = 0x17 , EXECUTE_WRITE_REQ = 0x18 , EXECUTE_WRITE_RSP = 0x19 ,
  READ_MULTIPLE_VARIABLE_REQ = 0x20 , READ_MULTIPLE_VARIABLE_RSP = 0x21 , MULTIPLE_HANDLE_VALUE_NTF = 0x23 , HANDLE_VALUE_NTF = 0x1B ,
  HANDLE_VALUE_IND = 0x1D , HANDLE_VALUE_CFM = 0x1E , SIGNED_WRITE_CMD = WRITE_REQ + COMMAND_FLAG + AUTH_SIGNATURE_FLAG
}
 ATT Opcode Summary Vol 3, Part F 3.4.8. More...
 
enum class  OpcodeType : uint8_t {
  UNDEFINED = 0 , REQUEST = 1 , RESPONSE = 2 , NOTIFICATION = 3 ,
  INDICATION = 4
}
 
enum class  ReqRespType : bool { REQUEST = true , RESPONSE = false }
 
- Static Public Member Functions inherited from direct_bt::AttPDUMsg
static constexpr OpcodeType get_type (const Opcode rhs) noexcept
 
static std::string getOpcodeString (const Opcode opc) noexcept
 
static std::unique_ptr< const AttPDUMsggetSpecialized (const uint8_t *buffer, jau::nsize_t const buffer_size) noexcept
 Return a newly created specialized instance pointer to base class. More...
 
static constexpr bool is_request (const ReqRespType rhs) noexcept
 
static constexpr uint8_t number (const Opcode rhs) noexcept
 
- Public Attributes inherited from direct_bt::AttPDUMsg
jau::POctets pdu
 actual received PDU More...
 
const uint64_t ts_creation
 creation timestamp in milliseconds More...
 

Detailed Description

BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.4 ATT_FIND_BY_TYPE_VALUE_RSP.

FIND_BY_TYPE_VALUE_RSP

Contains a list of elements, each comprised of { att_handle_start, group_end_handle } pair. The handles are comprised of two octets, i.e. uint16_t, hence one element is of size 4 octets.

 element := { uint16_t handle_start, uint16_t handle_end }

Used in:

BT Core Spec v5.2: Vol 3, Part G GATT: 4.4.2 Discover Primary Service by Service UUID

Definition at line 2037 of file ATTPDUTypes.hpp.

Constructor & Destructor Documentation

◆ AttFindByTypeValueRsp() [1/2]

direct_bt::AttFindByTypeValueRsp::AttFindByTypeValueRsp ( const uint8_t *  source,
const jau::nsize_t  length 
)
inline

Definition at line 2040 of file ATTPDUTypes.hpp.

◆ AttFindByTypeValueRsp() [2/2]

direct_bt::AttFindByTypeValueRsp::AttFindByTypeValueRsp ( const jau::nsize_t  total_length)
inline

Create an incomplete response with maximal (MTU) length.

User shall set all elements via the set*() methods and finally use setElementCount() to fixate element count.

Parameters
total_lengthmaximum

Definition at line 2109 of file ATTPDUTypes.hpp.

Member Function Documentation

◆ getPDUValueOffset()

constexpr_cxx20 jau::nsize_t direct_bt::AttFindByTypeValueRsp::getPDUValueOffset ( ) const
inlineoverridevirtualnoexcept

opcode

Reimplemented from direct_bt::AttPDUMsg.

Definition at line 2052 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getElementSize()

constexpr jau::nsize_t direct_bt::AttFindByTypeValueRsp::getElementSize ( ) const
inlineconstexprnoexcept

Returns element size, 4 octets.

element := { uint16_t handle_start, uint16_t handle_end }

Definition at line 2060 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getElementCount()

constexpr_cxx20 jau::nsize_t direct_bt::AttFindByTypeValueRsp::getElementCount ( ) const
inlinenoexcept

Number of elements.

Definition at line 2065 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ setElementCount()

void direct_bt::AttFindByTypeValueRsp::setElementCount ( const jau::nsize_t  count)
inline

Fixate element count.

Parameters
count

Definition at line 2077 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getElementPDUOffset()

jau::nsize_t direct_bt::AttFindByTypeValueRsp::getElementPDUOffset ( const jau::nsize_t  elementIdx) const
inlinenoexcept

Definition at line 2093 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getElementPtr()

uint8_t const * direct_bt::AttFindByTypeValueRsp::getElementPtr ( const jau::nsize_t  elementIdx) const
inline

Definition at line 2097 of file ATTPDUTypes.hpp.

◆ getElementHandle()

uint16_t direct_bt::AttFindByTypeValueRsp::getElementHandle ( const jau::nsize_t  elementIdx) const
inline

Definition at line 2115 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getElementHandleEnd()

uint16_t direct_bt::AttFindByTypeValueRsp::getElementHandleEnd ( const jau::nsize_t  elementIdx) const
inline

Definition at line 2118 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ setElementHandles()

void direct_bt::AttFindByTypeValueRsp::setElementHandles ( const jau::nsize_t  elementIdx,
const uint16_t  handle,
const uint16_t  handle_end 
)
inline

Definition at line 2122 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ getName()

std::string direct_bt::AttFindByTypeValueRsp::getName ( ) const
inlineoverridevirtualnoexcept

Reimplemented from direct_bt::AttPDUMsg.

Definition at line 2128 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ elementString()

std::string direct_bt::AttFindByTypeValueRsp::elementString ( const jau::nsize_t  idx) const
inlineprotected

Definition at line 2133 of file ATTPDUTypes.hpp.

Here is the caller graph for this function:

◆ valueString()

std::string direct_bt::AttFindByTypeValueRsp::valueString ( ) const
inlineoverrideprotectedvirtualnoexcept

Reimplemented from direct_bt::AttPDUMsg.

Definition at line 2138 of file ATTPDUTypes.hpp.


The documentation for this class was generated from the following file: