Skip to content

Group reqrep

Modules > reqrep

More...

Public Functions

Type Name
dp_rep_t * dp_rep_create (const char * endpoint)
Create a Replier and connect to endpoint .
void dp_rep_destroy (dp_rep_t * ctx)
Destroy a Replier context and release all resources.
int dp_rep_recv (dp_rep_t * ctx, dp_msg_t ** msg, size_t * size)
Block until an incoming request arrives on the Replier (zero-copy).
int dp_rep_recv_signal (dp_rep_t * ctx, dp_msg_t ** msg, dp_header_t * header)
Receive a signal frame request (zero-copy).
int dp_rep_send (dp_rep_t * ctx, const void * data, size_t size)
Send the reply to the most recent request.
int dp_rep_send_cf32 (dp_rep_t * ctx, const float _Complex * samples, size_t num_samples, double sample_rate, double center_freq)
Send CF32 signal frame as a reply.
int dp_rep_send_cf64 (dp_rep_t * ctx, const double _Complex * samples, size_t num_samples, double sample_rate, double center_freq)
Send CF64 signal frame as a reply.
int dp_rep_send_ci16 (dp_rep_t * ctx, const int16_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI16 signal frame as a reply.
int dp_rep_send_ci32 (dp_rep_t * ctx, const int32_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI32 signal frame as a reply.
int dp_rep_send_ci8 (dp_rep_t * ctx, const int8_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI8 signal frame as a reply.
void dp_rep_set_timeout (dp_rep_t * ctx, int timeout_ms)
Set receive timeout for a Replier socket.
dp_req_t * dp_req_create (const char * endpoint)
Create a Requester and connect to endpoint .
void dp_req_destroy (dp_req_t * ctx)
Destroy a Requester context and release all resources.
int dp_req_recv (dp_req_t * ctx, dp_msg_t ** msg, size_t * size)
Receive the reply to a previously sent request (zero-copy).
int dp_req_recv_signal (dp_req_t * ctx, dp_msg_t ** msg, dp_header_t * header)
Receive a signal frame reply (zero-copy).
int dp_req_send (dp_req_t * ctx, const void * data, size_t size)
Send raw bytes as a request.
int dp_req_send_cf32 (dp_req_t * ctx, const float _Complex * samples, size_t num_samples, double sample_rate, double center_freq)
Send CF32 signal frame as a request.
int dp_req_send_cf64 (dp_req_t * ctx, const double _Complex * samples, size_t num_samples, double sample_rate, double center_freq)
Send CF64 signal frame as a request.
int dp_req_send_ci16 (dp_req_t * ctx, const int16_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI16 signal frame as a request.
int dp_req_send_ci32 (dp_req_t * ctx, const int32_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI32 signal frame as a request.
int dp_req_send_ci8 (dp_req_t * ctx, const int8_t * samples, size_t num_samples, double sample_rate, double center_freq)
Send CI8 signal frame as a request.
void dp_req_set_timeout (dp_req_t * ctx, int timeout_ms)
Set receive timeout for a Requester socket.

Detailed Description

Strict synchronous request/reply. The Requester sends a message and must call recv before sending again. Useful for control plane messages (e.g. tuning commands, metadata queries) and signal-frame RPC.

Public Functions Documentation

function dp_rep_create

Create a Replier and connect to endpoint .

dp_rep_t * dp_rep_create (
    const char * endpoint
) 

Parameters:

  • endpoint NATS endpoint, e.g. "nats://127.0.0.1:4222/ctrl".

Returns:

Non-NULL context on success, NULL on failure.


function dp_rep_destroy

Destroy a Replier context and release all resources.

void dp_rep_destroy (
    dp_rep_t * ctx
) 

Parameters:

  • ctx Replier context (may be NULL).

function dp_rep_recv

Block until an incoming request arrives on the Replier (zero-copy).

int dp_rep_recv (
    dp_rep_t * ctx,
    dp_msg_t ** msg,
    size_t * size
) 

Parameters:

  • ctx Replier context.
  • msg Set to a zero-copy message handle.
  • size Set to the request byte count.

Returns:

DP_OK on success.


function dp_rep_recv_signal

Receive a signal frame request (zero-copy).

int dp_rep_recv_signal (
    dp_rep_t * ctx,
    dp_msg_t ** msg,
    dp_header_t * header
) 

Parameters:

  • ctx Replier context.
  • msg Set to a zero-copy message handle.
  • header Set to the frame metadata.

Returns:

DP_OK on success, DP_ERR_TIMEOUT on timeout, negative on error.


function dp_rep_send

Send the reply to the most recent request.

int dp_rep_send (
    dp_rep_t * ctx,
    const void * data,
    size_t size
) 

Parameters:

  • ctx Replier context.
  • data Pointer to reply payload bytes.
  • size Byte count.

Returns:

DP_OK on success.


function dp_rep_send_cf32

Send CF32 signal frame as a reply.

int dp_rep_send_cf32 (
    dp_rep_t * ctx,
    const float _Complex * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_rep_send_cf64

Send CF64 signal frame as a reply.

int dp_rep_send_cf64 (
    dp_rep_t * ctx,
    const double _Complex * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_rep_send_ci16

Send CI16 signal frame as a reply.

int dp_rep_send_ci16 (
    dp_rep_t * ctx,
    const int16_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_rep_send_ci32

Send CI32 signal frame as a reply.

int dp_rep_send_ci32 (
    dp_rep_t * ctx,
    const int32_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_rep_send_ci8

Send CI8 signal frame as a reply.

int dp_rep_send_ci8 (
    dp_rep_t * ctx,
    const int8_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_rep_set_timeout

Set receive timeout for a Replier socket.

void dp_rep_set_timeout (
    dp_rep_t * ctx,
    int timeout_ms
) 

Parameters:

  • ctx Replier context.
  • timeout_ms Timeout in milliseconds (-1 = infinite).

function dp_req_create

Create a Requester and connect to endpoint .

dp_req_t * dp_req_create (
    const char * endpoint
) 

Parameters:

  • endpoint NATS endpoint, e.g. "nats://127.0.0.1:4222/ctrl".

Returns:

Non-NULL context on success, NULL on failure.


function dp_req_destroy

Destroy a Requester context and release all resources.

void dp_req_destroy (
    dp_req_t * ctx
) 

Parameters:

  • ctx Requester context (may be NULL).

function dp_req_recv

Receive the reply to a previously sent request (zero-copy).

int dp_req_recv (
    dp_req_t * ctx,
    dp_msg_t ** msg,
    size_t * size
) 

Parameters:

  • ctx Requester context.
  • msg Set to a zero-copy message handle.
  • size Set to the reply byte count.

Returns:

DP_OK on success.


function dp_req_recv_signal

Receive a signal frame reply (zero-copy).

int dp_req_recv_signal (
    dp_req_t * ctx,
    dp_msg_t ** msg,
    dp_header_t * header
) 

Parameters:

  • ctx Requester context.
  • msg Set to a zero-copy message handle.
  • header Set to the frame metadata.

Returns:

DP_OK on success, DP_ERR_TIMEOUT on timeout, negative on error.


function dp_req_send

Send raw bytes as a request.

int dp_req_send (
    dp_req_t * ctx,
    const void * data,
    size_t size
) 

Parameters:

  • ctx Requester context.
  • data Pointer to payload bytes.
  • size Byte count.

Returns:

DP_OK on success.


function dp_req_send_cf32

Send CF32 signal frame as a request.

int dp_req_send_cf32 (
    dp_req_t * ctx,
    const float _Complex * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_req_send_cf64

Send CF64 signal frame as a request.

int dp_req_send_cf64 (
    dp_req_t * ctx,
    const double _Complex * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_req_send_ci16

Send CI16 signal frame as a request.

int dp_req_send_ci16 (
    dp_req_t * ctx,
    const int16_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_req_send_ci32

Send CI32 signal frame as a request.

int dp_req_send_ci32 (
    dp_req_t * ctx,
    const int32_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_req_send_ci8

Send CI8 signal frame as a request.

int dp_req_send_ci8 (
    dp_req_t * ctx,
    const int8_t * samples,
    size_t num_samples,
    double sample_rate,
    double center_freq
) 


function dp_req_set_timeout

Set receive timeout for a Requester socket.

void dp_req_set_timeout (
    dp_req_t * ctx,
    int timeout_ms
) 

Parameters:

  • ctx Requester context.
  • timeout_ms Timeout in milliseconds (-1 = infinite).