Communication Library for Autonomous Systems v1.0
Reliable and secure communication library for autonomous vehicle systems
Loading...
Searching...
No Matches
StatusManager< NIC_TYPE > Class Template Reference

Thread-safe manager for vehicle status and leader election. More...

#include <statusManager.h>

Classes

struct  NeighborInfo
 

Public Types

using VehicleIdType = typename Protocol< NIC_TYPE >::Address
 

Public Member Functions

 StatusManager (Protocol< NIC_TYPE > *owner_protocol, const Ethernet::Address &self_mac_address, uint32_t self_age, const UniqueKeyValueType &self_unique_key, std::chrono::microseconds broadcast_interval=std::chrono::seconds(1), std::chrono::microseconds prune_interval=std::chrono::seconds(3), std::chrono::microseconds neighbor_timeout=std::chrono::seconds(5))
 Construct a new Status Manager.
 
 ~StatusManager ()
 Destroy the Status Manager.
 
void process_incoming_status (const VehicleIdType &sender_protocol_address, const uint8_t *payload_data, unsigned int payload_size)
 Process an incoming status message.
 
 StatusManager (const StatusManager &)=delete
 
StatusManageroperator= (const StatusManager &)=delete
 

Public Attributes

Protocol< NIC_TYPE >::Port STATUS_PORT = 60000
 

Detailed Description

template<typename NIC_TYPE>
class StatusManager< NIC_TYPE >

Thread-safe manager for vehicle status and leader election.

This class is thread-safe and can be accessed from multiple threads. It manages vehicle status broadcasts, neighbor tracking, and leader election. All state access is protected by appropriate synchronization primitives.

Member Typedef Documentation

◆ VehicleIdType

template<typename NIC_TYPE >
using StatusManager< NIC_TYPE >::VehicleIdType = typename Protocol<NIC_TYPE>::Address

Constructor & Destructor Documentation

◆ StatusManager() [1/2]

template<typename NIC_TYPE >
StatusManager< NIC_TYPE >::StatusManager ( Protocol< NIC_TYPE > *  owner_protocol,
const Ethernet::Address self_mac_address,
uint32_t  self_age,
const UniqueKeyValueType self_unique_key,
std::chrono::microseconds  broadcast_interval = std::chrono::seconds(1),
std::chrono::microseconds  prune_interval = std::chrono::seconds(3),
std::chrono::microseconds  neighbor_timeout = std::chrono::seconds(5) 
)
inline

Construct a new Status Manager.

Thread-safe: Constructor is not thread-safe, should be called from a single thread

◆ ~StatusManager()

Destroy the Status Manager.

Thread-safe: Destructor is not thread-safe, should be called from a single thread

◆ StatusManager() [2/2]

Member Function Documentation

◆ operator=()

◆ process_incoming_status()

template<typename NIC_TYPE >
void StatusManager< NIC_TYPE >::process_incoming_status ( const VehicleIdType sender_protocol_address,
const uint8_t payload_data,
unsigned int  payload_size 
)
inline

Process an incoming status message.

Thread-safe: Protected by mutex for neighbor list access

Member Data Documentation

◆ STATUS_PORT

template<typename NIC_TYPE >
Protocol<NIC_TYPE>::Port StatusManager< NIC_TYPE >::STATUS_PORT = 60000

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