Encapsulates a message packet for flexible introspection. More...

#include <Message.h>

Inheritance diagram for mDNS::Message:
Collaboration diagram for mDNS::Message:

Public Types

enum  Type { Type::query, Type::reply }
 

Public Member Functions

 Message (IpAddress remoteIp, uint16_t remotePort, void *data, uint16_t size)
 
 Message (const Message &other)
 
bool parse ()
 Parse message data. More...
 
IpAddress getRemoteIp () const
 Address of sender from UDP packet. More...
 
uint16_t getRemotePort () const
 UDP port in message. More...
 
bool isReply () const
 Check that message contains answers, not queries. More...
 
Type getType () const
 
bool isTruncated () const
 If set, indicates record is split across multiple packets. More...
 
uint8_t getResponseCode () const
 Non-zero indicates error. More...
 
uint8_tgetData () const
 
uint16_t getSize () const
 
Answeroperator[] (ResourceType type)
 
void allocate (uint16_t recordSize)
 
uint8_tresolvePointer (uint16_t pointer) const
 

Public Attributes

Question::OwnedList questions
 
Answer::OwnedList answers
 

Protected Attributes

IpAddress remoteIp
 
uint16_t remotePort
 
uint8_tdata
 
uint16_t size
 

Detailed Description

Encapsulates a message packet for flexible introspection.

Member Enumeration Documentation

◆ Type

enum mDNS::Message::Type
strong
Enumerator
query 
reply 

Constructor & Destructor Documentation

◆ Message() [1/2]

mDNS::Message::Message ( IpAddress  remoteIp,
uint16_t  remotePort,
void *  data,
uint16_t  size 
)
inline

◆ Message() [2/2]

mDNS::Message::Message ( const Message other)
inline

Member Function Documentation

◆ allocate()

void mDNS::Message::allocate ( uint16_t  recordSize)
inline

◆ getData()

uint8_t* mDNS::Message::getData ( ) const
inline

◆ getRemoteIp()

IpAddress mDNS::Message::getRemoteIp ( ) const
inline

Address of sender from UDP packet.

◆ getRemotePort()

uint16_t mDNS::Message::getRemotePort ( ) const
inline

UDP port in message.

◆ getResponseCode()

uint8_t mDNS::Message::getResponseCode ( ) const
inline

Non-zero indicates error.

◆ getSize()

uint16_t mDNS::Message::getSize ( ) const
inline

◆ getType()

Type mDNS::Message::getType ( ) const
inline

◆ isReply()

bool mDNS::Message::isReply ( ) const
inline

Check that message contains answers, not queries.

◆ isTruncated()

bool mDNS::Message::isTruncated ( ) const
inline

If set, indicates record is split across multiple packets.

◆ operator[]()

Answer* mDNS::Message::operator[] ( ResourceType  type)

◆ parse()

bool mDNS::Message::parse ( )

Parse message data.

Return values
booltrue if message parsed successfully, false indicates a problem

Does basic validation and builds a list of answers.

◆ resolvePointer()

uint8_t* mDNS::Message::resolvePointer ( uint16_t  pointer) const
inline

Member Data Documentation

◆ answers

Answer::OwnedList mDNS::Message::answers

◆ data

uint8_t* mDNS::Message::data
protected

◆ questions

Question::OwnedList mDNS::Message::questions

◆ remoteIp

IpAddress mDNS::Message::remoteIp
protected

◆ remotePort

uint16_t mDNS::Message::remotePort
protected

◆ size

uint16_t mDNS::Message::size
protected

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