Udipe 1.0
Solving the riddle of high-throughput UDP
Loading...
Searching...
No Matches
configure_buffering.c

This example demonstrates a non-default udipe_buffer_config_t setup that configures all worker threads to work with 42 buffers of 9000 bytes.

#include <udipe/buffer.h>
#include <udipe/context.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
udipe_buffer_config_t apply_shared_configuration(void* context) {
const udipe_buffer_config_t* config = (udipe_buffer_config_t*)context;
return *config;
}
int main() {
// Start from the default libudipe configuration
udipe_config_t config = { 0 };
// Adjust the buffering configuration
udipe_buffer_config_t buffer_config = {
.buffer_size = 9000,
.buffer_count = 42
};
.callback = apply_shared_configuration,
.context = (void*)&buffer_config
};
// Set up the upipe context
udipe_context_t* context = udipe_initialize(config);
assert(context);
// Finalize the libudipe context
udipe_finalize(context);
return 0;
}
Buffering configuration.
struct udipe_buffer_configurator_s udipe_buffer_configurator_t
Core libudipe context.
struct udipe_context_s udipe_context_t
Definition context.h:65
UDIPE_PUBLIC UDIPE_NON_NULL_ARGS void udipe_finalize(udipe_context_t *context)
UDIPE_NODISCARD UDIPE_NON_NULL_RESULT UDIPE_PUBLIC udipe_context_t * udipe_initialize(udipe_config_t config)
Definition buffer.h:32
size_t buffer_size
Definition buffer.h:50
udipe_buffer_config_callback_t callback
Definition buffer.h:111
Definition context.h:35
udipe_buffer_configurator_t buffer
Definition context.h:51