MCPcopy Create free account
hub / github.com/attermann/microReticulum / ResourceAdvertisement

Method ResourceAdvertisement

src/microReticulum/Resource.cpp:1526–1565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1524// ============================================================================
1525
1526ResourceAdvertisement::ResourceAdvertisement(const Resource& resource, const Bytes& request_id /*= {Bytes::NONE}*/, bool is_response /*= false*/) {
1527 if (!resource) return;
1528
1529 _link = resource._object->_link;
1530 _t = resource._object->_size;
1531 _d = resource._object->_total_size;
1532 _n = static_cast<uint32_t>(resource._object->_parts.size());
1533 _h = resource._object->_hash;
1534 _r = resource._object->_random_hash;
1535 _o = resource._object->_original_hash;
1536 _m = resource._object->_hashmap;
1537 _c = resource._object->_compressed;
1538 _e = resource._object->_encrypted;
1539 _s = resource._object->_split;
1540 _x = resource._object->_has_metadata;
1541 _i = resource._object->_segment_index;
1542 _l = resource._object->_total_segments;
1543 _q = resource._object->_request_id;
1544 _u = false;
1545 _p = false;
1546
1547 if (_q.size() > 0) {
1548 if (!resource._object->_is_response) {
1549 _u = true;
1550 _p = false;
1551 } else {
1552 _u = false;
1553 _p = true;
1554 }
1555 }
1556
1557 // Packed flag byte (mirror Python Resource.py:1307)
1558 _f = static_cast<uint8_t>(
1559 (_x ? 1u : 0u) << 5
1560 | (_p ? 1u : 0u) << 4
1561 | (_u ? 1u : 0u) << 3
1562 | (_s ? 1u : 0u) << 2
1563 | (_c ? 1u : 0u) << 1
1564 | (_e ? 1u : 0u));
1565}
1566
1567bool ResourceAdvertisement::is_request(const Packet& advertisement_packet) {
1568 ResourceAdvertisement adv = ResourceAdvertisement::unpack(advertisement_packet.plaintext());

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected