DTNMA Reference Tools v2.3.0 - 0.gf3d5850
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
mgr.c File Reference
#include "mgr.h"
#include "ingress.h"
#include "cace/util/defs.h"
#include "cace/util/logging.h"
#include "cace/util/mutex.h"
+ Include dependency graph for mgr.c:

Functions

void refdm_mgr_init (refdm_mgr_t *mgr)
 Initialize a new manager state with default config.
 
void refdm_mgr_deinit (refdm_mgr_t *mgr)
 
int refdm_mgr_start (refdm_mgr_t *mgr)
 Begin the REFDM daemon operation.
 
int refdm_mgr_stop (refdm_mgr_t *mgr)
 End daemon operation.
 
refdm_agent_trefdm_mgr_agent_add (refdm_mgr_t *mgr, const char *agent_eid, bool *is_new)
 Add a new known agent by its EID URI.
 
refdm_agent_trefdm_mgr_agent_get_eid (refdm_mgr_t *mgr, const char *eid)
 
refdm_agent_trefdm_mgr_agent_get_index (refdm_mgr_t *mgr, size_t index)
 
void refdm_mgr_clear_reports (refdm_mgr_t *mgr, refdm_agent_t *agent)
 Clear reports for a specific agent.
 

Function Documentation

◆ refdm_mgr_agent_add()

refdm_agent_t * refdm_mgr_agent_add ( refdm_mgr_t mgr,
const char *  agent_eid,
bool *  is_new 
)

Add a new known agent by its EID URI.

Parameters
[in]mgrThe manager to update.
[in]agent_eidThe unique agent EID. Adding short-circuit if the EID already exists in the agent list.
[out]is_newIf provided, will be set to false if the agent was already present and true if it was newly added.
Returns
The new manager, or NULL if adding failed.

References agent, refdm_mgr_t::agent_dict, refdm_mgr_t::agent_list, refdm_mgr_t::agent_log_cfg, refdm_mgr_t::agent_mutex, CACE_LOG_INFO, CACE_MALLOC, CACE_MUTEX_LOCK, CACE_MUTEX_UNLOCK, CHKNULL, mgr, refdm_agent_init(), refdm_agent_rotate_log(), and refdm_db_insert_agent().

Referenced by agentsPostHandler(), refdm_db_load_agents(), and refdm_ingress_worker().

◆ refdm_mgr_agent_get_eid()

refdm_agent_t * refdm_mgr_agent_get_eid ( refdm_mgr_t mgr,
const char *  eid 
)

◆ refdm_mgr_agent_get_index()

refdm_agent_t * refdm_mgr_agent_get_index ( refdm_mgr_t mgr,
size_t  index 
)

◆ refdm_mgr_clear_reports()

void refdm_mgr_clear_reports ( refdm_mgr_t mgr,
refdm_agent_t agent 
)

Clear reports for a specific agent.

References agent, refdm_db_clear_rptset(), and refdm_db_fetch_agent_idx().

Referenced by agentEidClearReportsHandler(), and agentIdxClearReportsHandler().

◆ refdm_mgr_deinit()

◆ refdm_mgr_init()

◆ refdm_mgr_start()

int refdm_mgr_start ( refdm_mgr_t mgr)

Begin the REFDM daemon operation.

Precondition
The manager must have set values for:
Parameters
[in]mgrThe manager to start.
See also
refdm_mgr_stop()

References cace_threadset_start(), mgr, refdm_ingress_worker(), refdm_nm_rest_start(), and refdm_mgr_t::threads.

Referenced by main().

◆ refdm_mgr_stop()

int refdm_mgr_stop ( refdm_mgr_t mgr)

End daemon operation.

Precondition
The manager must have been successfully started with refdm_mgr_start().
Parameters
[in]mgrThe manager to stop.

References cace_daemon_run_stop(), cace_threadset_join(), mgr, refdm_nm_rest_stop(), refdm_mgr_t::running, and refdm_mgr_t::threads.

Referenced by main().