Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::DnsResource Struct Reference
+ Collaboration diagram for Slic3r::DnsResource:

Public Member Functions

 DnsResource ()
 

Static Public Member Functions

static optional< DnsResourcedecode (const std::vector< char > &buffer, size_t &offset, size_t &dataoffset)
 

Public Attributes

DnsName name
 
uint16_t type
 
uint16_t rclass
 
uint32_t ttl
 
std::vector< char > data
 

Detailed Description

Constructor & Destructor Documentation

◆ DnsResource()

Slic3r::DnsResource::DnsResource ( )
inline
193 : type(0)
194 , rclass(0)
195 , ttl(0)
196 {}
uint16_t type
Definition Bonjour.cpp:187
uint16_t rclass
Definition Bonjour.cpp:188
uint32_t ttl
Definition Bonjour.cpp:189

Member Function Documentation

◆ decode()

static optional< DnsResource > Slic3r::DnsResource::decode ( const std::vector< char > &  buffer,
size_t &  offset,
size_t &  dataoffset 
)
inlinestatic
199 {
200 const size_t bsize = buffer.size();
201 if (offset + 1 >= bsize) {
202 return boost::none;
203 }
204
205 auto rname = DnsName::decode(buffer, offset);
206 if (!rname) {
207 return boost::none;
208 }
209
210 if (offset + 10 >= bsize) {
211 return boost::none;
212 }
213
214 DnsResource res;
215 res.name = std::move(*rname);
216 const uint16_t *data_16 = reinterpret_cast<const uint16_t*>(buffer.data() + offset);
217 res.type = endian::big_to_native(data_16[0]);
218 res.rclass = endian::big_to_native(data_16[1]);
219 res.ttl = endian::big_to_native(*reinterpret_cast<const uint32_t*>(data_16 + 2));
220 uint16_t rdlength = endian::big_to_native(data_16[4]);
221
222 offset += 10;
223 if (offset + rdlength > bsize) {
224 return boost::none;
225 }
226
227 dataoffset = offset;
228 res.data = std::vector<char>(buffer.begin() + offset, buffer.begin() + offset + rdlength);
229 offset += rdlength;
230
231 return std::move(res);
232 }
Slic3r::Polygons offset(const Slic3r::Polygon &polygon, const float delta, ClipperLib::JoinType joinType, double miterLimit)
Definition ClipperUtils.cpp:416
static optional< DnsName > decode(const std::vector< char > &buffer, size_t &offset, unsigned depth=0)
Definition Bonjour.cpp:48
DnsResource()
Definition Bonjour.cpp:192
unsigned __int16 uint16_t
Definition unistd.h:78
unsigned __int32 uint32_t
Definition unistd.h:79

References data, Slic3r::DnsName::decode(), name, Slic3r::offset(), rclass, ttl, and type.

Referenced by Slic3r::DnsMessage::decode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ data

◆ name

DnsName Slic3r::DnsResource::name

Referenced by decode().

◆ rclass

uint16_t Slic3r::DnsResource::rclass

Referenced by decode().

◆ ttl

uint32_t Slic3r::DnsResource::ttl

Referenced by decode().

◆ type

uint16_t Slic3r::DnsResource::type

Referenced by decode().


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