DTNMA Reference Tools v2.0.0 - 9.gaff6489
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
nm_sql.h File Reference

This file is only included in the build when either ::HAVE_POSTGRESQL or ::HAVE_MYSQL are defined. More...

#include <stdio.h>
#include <unistd.h>
#include <cace/util/defs.h>
#include <cace/ari.h>
#include <cace/amm/msg_if.h>
#include "agents.h"
#include "mgr.h"
+ Include dependency graph for nm_sql.h:
+ This graph shows which files directly or indirectly include this file:

Macros

#define RET_PASS   0
 Return code that indicates normal completion.
 
#define RET_FAIL_UNDEFINED   1
 Return code that indicates the input resolves to an undefined result.
 
#define RET_FAIL_UNEXPECTED   2
 Return code that indicates the input resolves to an unexpected/abnormal state.
 
#define RET_FAIL_BAD_ARGS   3
 Return code that indicates that bad input arguments were passed.
 
#define RET_FAIL_DATABASE   10
 Return code that there was a database (generic) error.
 
#define RET_FAIL_DATABASE_CONNECTION   11
 Return code that there was a database connection error.
 
#define SQL_RECONN_TIME_MSEC   500
 
#define SQL_CONN_TRIES   10
 
#define CHKCONN   refdm_db_mgt_connected();
 
#define DB_LOG_INFO(...)   refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_INFO, __VA_ARGS__)
 
#define DB_LOG_WARN(...)   refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_WARNING, __VA_ARGS__)
 
#define DB_LOG_ERR(...)   refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_ERR, __VA_ARGS__)
 

Functions

int32_t db_add_agent (const cace_data_t *agent_eid)
 
uint32_t refdm_db_mgt_init (refdm_db_t *parms, uint32_t clear, uint32_t log)
 
uint32_t refdm_db_mgt_init_con (size_t idx, refdm_db_t *parms)
 Initialize specified (thread-specific) SQL connection and prepared queries Prepared queries are connection specific.
 
void refdm_db_mgt_close (void)
 
void refdm__db_mgt_close_conn (size_t i)
 
int refdm_db_mgt_connected (size_t i)
 
int32_t refdm_db_mgt_query_insert (int db_idx, uint32_t *idx, char *format,...)
 
uint32_t refdm_db_insert_rptset (const cace_ari_t *val, const refdm_agent_t *agent)
 
uint32_t refdm_db_insert_agent (const m_string_t eid)
 
uint32_t refdm_db_insert_execset (const cace_ari_t *val, const refdm_agent_t *agent)
 
refdm_agent_trefdm_db_fetch_agent (int32_t id)
 
int32_t refdm_db_fetch_agent_idx (const char *eid)
 Get the index of an Agent from its endpoint name.
 
int refdm_db_clear_rptset (int32_t agent_idx)
 Runs a clear request on the rptset database table.
 
int refdm_db_fetch_rptset_count (int32_t agent_idx, size_t *count)
 Runs a query on the database and retrieves the number of RPTSETs.
 
int refdm_db_fetch_rptset_list (int32_t agent_idx, cace_ari_list_t *rptsets)
 Runs a query on the database and retrieves the list of RPTSETs.
 
void refdm_db_log_msg (const char *filename, int lineno, const char *funcname, int level, size_t dbidx, const char *format,...)
 Utility function to insert debug or error informational messages into the database.
 

Detailed Description

This file is only included in the build when either ::HAVE_POSTGRESQL or ::HAVE_MYSQL are defined.

Function Documentation

◆ refdm_db_clear_rptset()

int refdm_db_clear_rptset ( int32_t  agent_idx)

Runs a clear request on the rptset database table.

All rows will be removed.

Returns
Returns RET_PASS on success otherwise RET_FAIL_* on failure.

◆ refdm_db_fetch_agent_idx()

int32_t refdm_db_fetch_agent_idx ( const char *  eid)

Get the index of an Agent from its endpoint name.

Parameters
[in]senderThe agent EID.
Returns
The corresponding Index, or zero if unsuccessful

References CACE_FREE, CACE_LOG_ERR, CACE_LOG_INFO, CACE_MALLOC, DB_REST_CON, DB_RPT_CON, and RET_PASS.

◆ refdm_db_fetch_rptset_count()

int refdm_db_fetch_rptset_count ( int32_t  agent_idx,
size_t *  count 
)

Runs a query on the database and retrieves the number of RPTSETs.

Parameters
agent_idxThe row index of the source Agent.
[out]countArgument used to return the number of RPTSETs.
Returns
Returns RET_PASS on success otherwise RET_FAIL_* on failure.

◆ refdm_db_fetch_rptset_list()

int refdm_db_fetch_rptset_list ( int32_t  agent_idx,
cace_ari_list_t rptsets 
)

Runs a query on the database and retrieves the list of RPTSETs.

Parameters
agent_idxThe row index of the source Agent.
[out]rptsetsThe list used to hold the retrieved RPTSETs.
Returns
Returns RET_PASS on success otherwise RET_FAIL_* on failure.

◆ refdm_db_insert_agent()

uint32_t refdm_db_insert_agent ( const m_string_t  eid)
Parameters
eidagent eid being added
statusSet to 0 if parsing fails, but not modified on success
Returns
Report Set ID, or 0 on error

References CACE_LOG_INFO, and DB_RPT_CON.

◆ refdm_db_insert_rptset()

uint32_t refdm_db_insert_rptset ( const cace_ari_t val,
const refdm_agent_t agent 
)
Parameters
valReport
agentagent table set being inserted in
statusSet to 0 if parsing fails, but not modified on success
Returns
Set ID, or 0 on error

References cace_ari_cbor_encode(), cace_ari_text_encode(), cace_data_deinit(), cace_data_init(), CACE_DATA_INIT_NULL, CACE_LOG_DEBUG, CACE_LOG_ERR, CACE_LOG_INFO, cace_log_is_enabled_for(), DB_RPT_CON, refdm_agent_t::eid, cace_data_t::len, cace_ari_rptset_t::nonce, cace_data_t::ptr, and cace_ari_rptset_t::reftime.

◆ refdm_db_log_msg()

void refdm_db_log_msg ( const char *  filename,
int  lineno,
const char *  funcname,
int  level,
size_t  dbidx,
const char *  format,
  ... 
)

Utility function to insert debug or error informational messages into the database.

NOTE: If operating within a transaction, caller is responsible for committing transaction.

References MGR_NUM_SQL_CONNECTIONS.

◆ refdm_db_mgt_init_con()

uint32_t refdm_db_mgt_init_con ( size_t  idx,
refdm_db_t *  parms 
)

Initialize specified (thread-specific) SQL connection and prepared queries Prepared queries are connection specific.

While we may not use all prepared statements for all connections, initializing the same sets everywhere simplifies management.

References CACE_LOG_INFO, and CACE_LOG_WARNING.