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

Our own pseudo opcode, indicating no ATT PDU message. More...

#include <ATTPDUTypes.hpp>

Inheritance diagram for direct_bt::AttPDUUndefined:
Collaboration diagram for direct_bt::AttPDUUndefined:

Public Member Functions

 AttPDUUndefined (const uint8_t *source, const jau::nsize_t length)
 
std::string getName () const noexcept override
 
constexpr_cxx20 jau::nsize_t getPDUValueOffset () const noexcept override
 Returns the octet offset to the value segment in this PDU including the mandatory opcode, i.e. More...
 
- 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
 

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...
 
- 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
 

Detailed Description

Our own pseudo opcode, indicating no ATT PDU message.

ATT_PDU_UNDEFINED

Definition at line 682 of file ATTPDUTypes.hpp.

Constructor & Destructor Documentation

◆ AttPDUUndefined()

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

Definition at line 685 of file ATTPDUTypes.hpp.

Member Function Documentation

◆ getPDUValueOffset()

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

Returns the octet offset to the value segment in this PDU including the mandatory opcode, i.e.

the number of octets until the first value octet.

Note that the ATT PDU value is part of the PDU param, where it is the last segment.

The value offset is ATT PDU specific and may point to the variable user data post handle etc within the PDU Param block.

Note that the opcode must be included in the implementation, as it may be used to reference the value in the pdu conveniently.

Reimplemented from direct_bt::AttPDUMsg.

Definition at line 690 of file ATTPDUTypes.hpp.

◆ getName()

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

Reimplemented from direct_bt::AttPDUMsg.

Definition at line 692 of file ATTPDUTypes.hpp.


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