DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
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.

Macro Definition Documentation

◆ CHKCONN

#define CHKCONN   refdm_db_mgt_connected();

◆ DB_LOG_ERR

#define DB_LOG_ERR (   ...)    refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_ERR, __VA_ARGS__)

◆ DB_LOG_INFO

#define DB_LOG_INFO (   ...)    refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_INFO, __VA_ARGS__)

◆ DB_LOG_WARN

#define DB_LOG_WARN (   ...)    refdm_db_log_msg(__FILE__, __LINE__, __func__, LOG_WARNING, __VA_ARGS__)

◆ RET_FAIL_BAD_ARGS

#define RET_FAIL_BAD_ARGS   3

Return code that indicates that bad input arguments were passed.

◆ RET_FAIL_DATABASE

#define RET_FAIL_DATABASE   10

Return code that there was a database (generic) error.

◆ RET_FAIL_DATABASE_CONNECTION

#define RET_FAIL_DATABASE_CONNECTION   11

Return code that there was a database connection error.

◆ RET_FAIL_UNDEFINED

#define RET_FAIL_UNDEFINED   1

Return code that indicates the input resolves to an undefined result.

◆ RET_FAIL_UNEXPECTED

#define RET_FAIL_UNEXPECTED   2

Return code that indicates the input resolves to an unexpected/abnormal state.

◆ RET_PASS

#define RET_PASS   0

Return code that indicates normal completion.

◆ SQL_CONN_TRIES

#define SQL_CONN_TRIES   10

◆ SQL_RECONN_TIME_MSEC

#define SQL_RECONN_TIME_MSEC   500

Function Documentation

◆ db_add_agent()

int32_t db_add_agent ( const cace_data_t agent_eid)

◆ refdm__db_mgt_close_conn()

void refdm__db_mgt_close_conn ( size_t  i)

References MGR_NUM_QUERIES.

Referenced by refdm_db_mgt_close().

◆ 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.

Referenced by refdm_mgr_clear_reports().

◆ refdm_db_fetch_agent()

refdm_agent_t * refdm_db_fetch_agent ( int32_t  id)

◆ 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, result, and RET_PASS.

Referenced by agentsGetHandler(), agentShowHexReports(), agentShowTextReports(), and refdm_mgr_clear_reports().

◆ 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.

Referenced by agentsGetHandler().

◆ 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.

Referenced by agentShowHexReports(), and agentShowTextReports().

◆ 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 ARI_AGENT_INSERT, CACE_LOG_INFO, and DB_RPT_CON.

Referenced by refdm_mgr_agent_add().

◆ refdm_db_insert_execset()

◆ refdm_db_insert_rptset()

uint32_t refdm_db_insert_rptset ( const cace_ari_t val,
const refdm_agent_t agent 
)

◆ 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_LOG_MSG, va_end(), and va_start().

◆ refdm_db_mgt_close()

void refdm_db_mgt_close ( void  )

◆ refdm_db_mgt_connected()

int refdm_db_mgt_connected ( size_t  i)

◆ refdm_db_mgt_init()

uint32_t refdm_db_mgt_init ( refdm_db_t *  parms,
uint32_t  clear,
uint32_t  log 
)

◆ 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 ARI_AGENT_INSERT, ARI_EXECSET_INSERT, ARI_RPTSET_INSERT, CACE_LOG_INFO, CACE_LOG_WARNING, gParms, and REFDM_DB_LOG_MSG.

Referenced by refdm_db_mgt_connected(), and refdm_db_mgt_init().

◆ refdm_db_mgt_query_insert()

int32_t refdm_db_mgt_query_insert ( int  db_idx,
uint32_t *  idx,
char *  format,
  ... 
)