HERMES Modem
Hermes ARQ/Broadcast modem
Loading...
Searching...
No Matches
Functions
arq_channels.c File Reference
#include "arq_channels.h"
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include "hermes_log.h"
Include dependency graph for arq_channels.c:

Functions

static int channel_open (chan_t **slot, size_t capacity)
 
static void channel_close (chan_t *channel)
 
static void channel_dispose (chan_t **slot)
 
int arq_channel_bus_init (arq_channel_bus_t *bus)
 Initialize ARQ channel bus.
 
void arq_channel_bus_close (arq_channel_bus_t *bus)
 Close all ARQ channel endpoints to stop producers/consumers.
 
void arq_channel_bus_dispose (arq_channel_bus_t *bus)
 Dispose ARQ channel resources.
 
int arq_channel_bus_try_send_cmd (arq_channel_bus_t *bus, const arq_cmd_msg_t *msg)
 Try to enqueue a TCP control command into ARQ bus.
 
int arq_channel_bus_try_send_payload (arq_channel_bus_t *bus, const uint8_t *data, size_t len)
 Try to enqueue TCP payload bytes into ARQ bus.
 
int arq_channel_bus_recv_cmd (arq_channel_bus_t *bus, arq_cmd_msg_t *msg)
 Receive next TCP command from ARQ bus.
 
int arq_channel_bus_recv_payload (arq_channel_bus_t *bus, arq_bytes_msg_t *msg)
 Receive next TCP payload message from ARQ bus.
 

Function Documentation

◆ arq_channel_bus_close()

void arq_channel_bus_close ( arq_channel_bus_t bus)

Close all ARQ channel endpoints to stop producers/consumers.

Parameters
busBus to close.

◆ arq_channel_bus_dispose()

void arq_channel_bus_dispose ( arq_channel_bus_t bus)

Dispose ARQ channel resources.

Parameters
busBus to dispose.

◆ arq_channel_bus_init()

int arq_channel_bus_init ( arq_channel_bus_t bus)

Initialize ARQ channel bus.

Parameters
busBus structure to initialize.
Returns
0 on success, negative on failure.

◆ arq_channel_bus_recv_cmd()

int arq_channel_bus_recv_cmd ( arq_channel_bus_t bus,
arq_cmd_msg_t msg 
)

Receive next TCP command from ARQ bus.

Parameters
busBus instance.
msgOutput command message.
Returns
0 on success, negative on closed/error.

◆ arq_channel_bus_recv_payload()

int arq_channel_bus_recv_payload ( arq_channel_bus_t bus,
arq_bytes_msg_t msg 
)

Receive next TCP payload message from ARQ bus.

Parameters
busBus instance.
msgOutput payload message.
Returns
0 on success, negative on closed/error.

◆ arq_channel_bus_try_send_cmd()

int arq_channel_bus_try_send_cmd ( arq_channel_bus_t bus,
const arq_cmd_msg_t msg 
)

Try to enqueue a TCP control command into ARQ bus.

Parameters
busBus instance.
msgCommand message.
Returns
0 on success, negative if full/error.

◆ arq_channel_bus_try_send_payload()

int arq_channel_bus_try_send_payload ( arq_channel_bus_t bus,
const uint8_t *  data,
size_t  len 
)

Try to enqueue TCP payload bytes into ARQ bus.

Parameters
busBus instance.
dataPayload bytes.
lenPayload length in bytes.
Returns
0 on success, negative if full/error.

◆ channel_close()

static void channel_close ( chan_t *  channel)
static

◆ channel_dispose()

static void channel_dispose ( chan_t **  slot)
static

◆ channel_open()

static int channel_open ( chan_t **  slot,
size_t  capacity 
)
static