DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
main.c File Reference
#include "cace/amp/proxy_msg.h"
#include "cace/amp/ion_bp.h"
#include "cace/ari/text.h"
#include "cace/util/threadset.h"
#include "cace/util/logging.h"
#include "cace/util/defs.h"
#include <m-bstring.h>
#include <m-shared-ptr.h>
#include <m-buffer.h>
#include <signal.h>
#include <getopt.h>
#include <errno.h>
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <bp.h>
+ Include dependency graph for main.c:

Data Structures

struct  prox_item_t
 

Macros

#define M_OPL_prox_item_t()    (INIT(API_2(prox_item_init)), CLEAR(API_2(prox_item_deinit)), INIT_SET(0), INIT_MOVE(0), SET(0), MOVE(0))
 M*LIB oplist for prox_item_t.
 
#define PROX_ITEM_QUEUE_DEPTH   10
 

Functions

static int mgr_parse_args (int argc, char *const argv[])
 Parse optional command line arguments.
 
static void show_usage (const char *argv0)
 
static void prox_item_init (prox_item_t *obj)
 
static void prox_item_deinit (prox_item_t *obj)
 
 M_BUFFER_DEF (prox_item_queue, prox_item_ptr_t *, PROX_ITEM_QUEUE_DEPTH, M_BUFFER_QUEUE|M_BUFFER_PUSH_INIT_POP_MOVE, M_SHARED_PTR_OPLIST(prox_item_ptr, M_OPL_prox_item_t())) static prox_item_queue_t outgoing
 Items outgoing to the BPA.
 
static void * sock_worker (void *arg)
 Thread work function for the socket side.
 
static void * bp_send_worker (void *ctx)
 Thread work function for the BP sending (outgoing).
 
static void * bp_recv_worker (void *ctx)
 Thread work function for the BP receiving (incoming).
 
static void daemon_signal_handler (int signum)
 
int main (int argc, char *argv[])
 

Variables

static cace_daemon_run_t running
 thread safe running state
 
static int log_limit = LOG_WARNING
 logging filter
 
static char * arg_path_listen = NULL
 Local listening socket path.
 
static int sock_listen = -1
 Socket FD for listening.
 
static int sock_conn = -1
 Socket FD for traffic.
 
static char * arg_eid = NULL
 Local BP endpoint ID.
 
static BpSAP ion_sap
 ION interface struct.
 
static prox_item_queue_t incoming
 Items incoming from the BPA.
 
static cace_threadset_t threads
 Thread states.
 

Macro Definition Documentation

◆ M_OPL_prox_item_t

#define M_OPL_prox_item_t ( )     (INIT(API_2(prox_item_init)), CLEAR(API_2(prox_item_deinit)), INIT_SET(0), INIT_MOVE(0), SET(0), MOVE(0))

M*LIB oplist for prox_item_t.

◆ PROX_ITEM_QUEUE_DEPTH

#define PROX_ITEM_QUEUE_DEPTH   10

Function Documentation

◆ bp_recv_worker()

static void * bp_recv_worker ( void *  ctx)
static

Thread work function for the BP receiving (incoming).

References cace_ari_set_tstr(), cace_daemon_run_get(), cace_daemon_run_stop(), CACE_LOG_ERR, CACE_LOG_INFO, prox_item_t::data, incoming, ion_sap, prox_item_t::peer, result, and running.

Referenced by main().

◆ bp_send_worker()

static void * bp_send_worker ( void *  ctx)
static

◆ daemon_signal_handler()

static void daemon_signal_handler ( int  signum)
static

References cace_daemon_run_stop(), CACE_LOG_INFO, and running.

Referenced by main().

◆ M_BUFFER_DEF()

M_BUFFER_DEF ( prox_item_queue  ,
prox_item_ptr_t *  ,
PROX_ITEM_QUEUE_DEPTH  ,
M_BUFFER_QUEUE|  M_BUFFER_PUSH_INIT_POP_MOVE,
M_SHARED_PTR_OPLIST(prox_item_ptr, M_OPL_prox_item_t())   
)

Items outgoing to the BPA.

◆ main()

◆ mgr_parse_args()

int mgr_parse_args ( int  argc,
char *const  argv[] 
)
static

Parse optional command line arguments.

References arg_eid, arg_path_listen, cace_log_get_severity(), log_limit, and show_usage().

Referenced by main().

◆ prox_item_deinit()

static void prox_item_deinit ( prox_item_t obj)
static

◆ prox_item_init()

static void prox_item_init ( prox_item_t obj)
static

◆ show_usage()

static void show_usage ( const char *  argv0)
static

Referenced by main(), and mgr_parse_args().

◆ sock_worker()

static void * sock_worker ( void *  arg)
static

Variable Documentation

◆ arg_eid

char* arg_eid = NULL
static

Local BP endpoint ID.

Referenced by main(), and mgr_parse_args().

◆ arg_path_listen

char* arg_path_listen = NULL
static

Local listening socket path.

Referenced by main(), and mgr_parse_args().

◆ incoming

prox_item_queue_t incoming
static

Items incoming from the BPA.

Referenced by bp_recv_worker(), main(), and sock_worker().

◆ ion_sap

BpSAP ion_sap
static

ION interface struct.

Referenced by bp_recv_worker(), bp_send_worker(), and main().

◆ log_limit

int log_limit = LOG_WARNING
static

logging filter

Referenced by main(), and mgr_parse_args().

◆ running

◆ sock_conn

int sock_conn = -1
static

Socket FD for traffic.

Referenced by main(), and sock_worker().

◆ sock_listen

int sock_listen = -1
static

Socket FD for listening.

Referenced by main(), and sock_worker().

◆ threads

cace_threadset_t threads
static

Thread states.

Referenced by main().