Go to the documentation of this file.
5 #ifndef UAVCAN_PROTOCOL_DYNAMIC_NODE_ID_SERVER_CENTRALIZED_SERVER_HPP_INCLUDED
6 #define UAVCAN_PROTOCOL_DYNAMIC_NODE_ID_SERVER_CENTRALIZED_SERVER_HPP_INCLUDED
17 namespace dynamic_node_id_server
67 const NodeID allocated_node_id =
72 const int res =
storage_.
add(allocated_node_id, unique_id);
85 UAVCAN_TRACE(
"dynamic_node_id_server::distributed::Server",
"Request ignored - no free node ID left");
153 if (stored_own_node_id.
isValid())
157 return -ErrInvalidConfiguration;
180 #endif // UAVCAN_PROTOCOL_DYNAMIC_NODE_ID_SERVER_CENTRALIZED_SERVER_HPP_INCLUDED
void tryPublishAllocationResult(const NodeID node_id, const UniqueID &unique_id)
AllocationRequestManager allocation_request_manager_
Server(INode &node, IStorageBackend &storage, IEventTracer &tracer)
int broadcastAllocationResponse(const UniqueID &unique_id, NodeID allocated_node_id)
virtual bool canPublishFollowupAllocationResponse() const
#define UAVCAN_TRACE(...)
bool isNodeIDOccupied(NodeID node_id) const
virtual void handleNewNodeDiscovery(const UniqueID *unique_id_or_null, NodeID node_id)
const UniqueID & getOwnUniqueID() const
virtual void registerInternalFailure(const char *msg)=0
static const TransferPriority OneHigherThanLowest
virtual void handleAllocationRequest(const UniqueID &unique_id, const NodeID preferred_node_id)
@ NodeAwarenessKnownAndCommitted
int init(const UniqueID &own_unique_id, const TransferPriority priority)
virtual NodeAwareness checkNodeAwareness(NodeID node_id) const
bool isNodeIDTaken(const NodeID node_id) const
virtual void onEvent(TraceCode event_code, int64_t event_argument)=0
NodeID findFreeNodeID(const NodeID preferred) const
int init(const UniqueID &own_unique_id, const TransferPriority priority=TransferPriority::OneHigherThanLowest)
int add(const NodeID node_id, const UniqueID &unique_id)
virtual bool canDiscoverNewNodes() const
protocol::dynamic_node_id::server::Entry::FieldTypes::unique_id UniqueID
uint8_t getNumAllocations() const
NodeID getNodeIDForUniqueID(const UniqueID &unique_id) const