Files
RTNode-HeltecV4/lib/microReticulum/src/Channel.h
James L 5ed70dcca9 v1.0.0: Boundary mode with bidirectional LoRa↔TCP transport
Vendor microReticulum library with boundary mode transport fixes:
- Two-whitelist system gates backbone traffic (local addresses +
  mentioned addresses from local devices)
- Allow control_hashes and local destinations through boundary filter
  (fixes backbone→LoRa path discovery)
- Fix get_cached_packet() to call unpack() instead of update_hash()
  (fixes empty destination_hash in path responses)
- LRPROOF Identity::recall null guard
- remaining_hops HEADER_1/BROADCAST fix for final-hop delivery
- PROOF packets excluded from boundary wrapping
- Iterator invalidation fix in transport table cleanup
- is_backbone flag replaces string matching for interface identification

Firmware changes:
- Set is_backbone(true) on backbone TCP interface
- Rename default TcpInterface name to BackboneInterface
- Update comments for dual-use TcpInterface (backbone + local AP)
- Use vendored lib/microReticulum instead of PlatformIO registry
2026-02-23 18:08:29 -05:00

58 lines
1.1 KiB
C++
Executable File

#pragma once
#include "Destination.h"
#include "Type.h"
#include <memory>
#include <cassert>
namespace RNS {
class Channel {
public:
Channel(Type::NoneConstructor none) {
MEM("Channel NONE object created");
}
Channel(const Channel& resource) : _object(resource._object) {
MEM("Channel object copy created");
}
virtual ~Channel(){
MEM("Channel object destroyed");
}
Channel& operator = (const Channel& resource) {
_object = resource._object;
return *this;
}
operator bool() const {
return _object.get() != nullptr;
}
bool operator < (const Channel& resource) const {
return _object.get() < resource._object.get();
//return _object->_hash < resource._object->_hash;
}
public:
void _shutdown() {}
private:
class Object {
public:
Object() { MEM("Channel::Data object created, this: " + std::to_string((uintptr_t)this)); }
virtual ~Object() { MEM("Channel::Data object destroyed, this: " + std::to_string((uintptr_t)this)); }
private:
friend class Channel;
};
std::shared_ptr<Object> _object;
};
class ChannelAdvertisement {
};
}