EPS Conduits  v0.0.2-2411
networking over networking
EPS::TrackerData Struct Referencefinal

Used to track everything we know about a particular EPS client. More...

#include "Tracker.hpp"

Collaboration diagram for EPS::TrackerData:

Public Member Functions

 TrackerData (void)
 Constructor. More...
 
std::string as_debug (void) const
 Format the tracker data structure as a single text string. More...
 
bool is_active (void) const
 Determine if an entry is "active" or "inactive". To be active, an entry must be available to send/receive packets. More...
 
bool is_inactive (void) const
 Determine if an entry is "active" or "inactive". To be active, an entry must be available to send/receive packets. More...
 
bool is_client (void) const
 Determine if an entry is a client or server entry. More...
 
bool is_server (void) const
 Determine if an entry is a client or server entry. More...
 
bool is_not_client (void) const
 Determine if an entry is a client or server entry. More...
 
bool is_not_server (void) const
 Determine if an entry is a client or server entry. More...
 

Public Attributes

bool active
 active connection (can be used to send/receive packets) More...
 
EPS::EMode mode
 type of peer (client or server?) More...
 
UUID uuid
 uuid for this EPS conduit More...
 
IPv4 address_eps
 EPS address last assigned to this client More...
 
IPv4Set other_addresses
 all other (non-EPS) addresses where this device can be reached More...
 
IPv4Set mesh_addresses
 set of remaining possible addresses to try when connecting directly (populated from other_addresses, and addresses are removed one at a time until we find one that works) More...
 
EPS::TConnPtr connection
 shared pointer to the direct peer tcp connection (can be empty) More...
 
EPS::TConnPtr pending_mesh_connection
 used temporarily while establishing a mesh connection More...
 
std::chrono::system_clock::time_point last_updated
 when the connection was last used (TBD) More...
 
std::chrono::system_clock::time_point next_connection_attempt
 next time we can try to connect (for mesh networks) More...
 
std::string hostname
 the hostname as reported by the peer (may not be unique!) More...
 
std::string os_name
 the OS name/version as returned by EPS::get_os_name() More...
 
std::string eps_version
 the EPS version string for this client More...
 
std::string msg
 text (debug) message associated with this entry More...
 
time_t eps_uptime
 timestamp: how long EPS has been running More...
 
time_t system_uptime
 timestamp: how long this client has been running More...
 
time_t disconnect_timestamp
 what time this device disconnected More...
 

Detailed Description

Used to track everything we know about a particular EPS client.

Constructor & Destructor Documentation

◆ TrackerData()

EPS::TrackerData::TrackerData ( void  )
inline

Constructor.

Here is the call graph for this function:

Member Function Documentation

◆ as_debug()

std::string EPS::TrackerData::as_debug ( void  ) const

Format the tracker data structure as a single text string.

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

◆ is_active()

bool EPS::TrackerData::is_active ( void  ) const
inline

Determine if an entry is "active" or "inactive". To be active, an entry must be available to send/receive packets.

Here is the caller graph for this function:

◆ is_client()

bool EPS::TrackerData::is_client ( void  ) const
inline

Determine if an entry is a client or server entry.

Here is the caller graph for this function:

◆ is_inactive()

bool EPS::TrackerData::is_inactive ( void  ) const
inline

Determine if an entry is "active" or "inactive". To be active, an entry must be available to send/receive packets.

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

◆ is_not_client()

bool EPS::TrackerData::is_not_client ( void  ) const
inline

Determine if an entry is a client or server entry.

Here is the call graph for this function:

◆ is_not_server()

bool EPS::TrackerData::is_not_server ( void  ) const
inline

Determine if an entry is a client or server entry.

Here is the call graph for this function:

◆ is_server()

bool EPS::TrackerData::is_server ( void  ) const
inline

Determine if an entry is a client or server entry.

Here is the caller graph for this function:

Member Data Documentation

◆ active

bool EPS::TrackerData::active

active connection (can be used to send/receive packets)

◆ address_eps

IPv4 EPS::TrackerData::address_eps

EPS address last assigned to this client

◆ connection

EPS::TConnPtr EPS::TrackerData::connection

shared pointer to the direct peer tcp connection (can be empty)

◆ disconnect_timestamp

time_t EPS::TrackerData::disconnect_timestamp

what time this device disconnected

◆ eps_uptime

time_t EPS::TrackerData::eps_uptime

timestamp: how long EPS has been running

Todo:
I dislike the mix of std::chrono and time_t, but I'm not yet familiar enough with std::chrono to make it do exactly what I want.

At some point, this code will need to be cleaned up and we'll have to pick one standard for the entire codebase. It is not yet that day.

◆ eps_version

std::string EPS::TrackerData::eps_version

the EPS version string for this client

◆ hostname

std::string EPS::TrackerData::hostname

the hostname as reported by the peer (may not be unique!)

◆ last_updated

std::chrono::system_clock::time_point EPS::TrackerData::last_updated

when the connection was last used (TBD)

◆ mesh_addresses

IPv4Set EPS::TrackerData::mesh_addresses

set of remaining possible addresses to try when connecting directly (populated from other_addresses, and addresses are removed one at a time until we find one that works)

◆ mode

EPS::EMode EPS::TrackerData::mode

type of peer (client or server?)

◆ msg

std::string EPS::TrackerData::msg

text (debug) message associated with this entry

◆ next_connection_attempt

std::chrono::system_clock::time_point EPS::TrackerData::next_connection_attempt

next time we can try to connect (for mesh networks)

◆ os_name

std::string EPS::TrackerData::os_name

the OS name/version as returned by EPS::get_os_name()

◆ other_addresses

IPv4Set EPS::TrackerData::other_addresses

all other (non-EPS) addresses where this device can be reached

◆ pending_mesh_connection

EPS::TConnPtr EPS::TrackerData::pending_mesh_connection

used temporarily while establishing a mesh connection

◆ system_uptime

time_t EPS::TrackerData::system_uptime

timestamp: how long this client has been running

◆ uuid

UUID EPS::TrackerData::uuid

uuid for this EPS conduit


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