BALTECH Docs |
C API for BALTECH SDK
|
A composite protocol is a container object, that provides a single protocol object for handling a stack of multiple sub-protocols at once. More...
#include "protocol.h"
Go to the source code of this file.
Macros | |
BRP_MONITOR_XXX | |
#define | BRP_MONITOR_DISABLED 0 |
avoid that BRP traffic could leak More... | |
#define | BRP_MONITOR_ENABLED 1 |
(required when sensitive data is transferred) More... | |
#define | BRP_MONITOR_PLAINTEXT 2 |
encrypted sessions will show only encryted data More... | |
Functions | |
BRP_LIB brp_protocol | brp_create_composite (void) |
Creates an empty composite protocol. More... | |
BRP_LIB brp_protocol | brp_create (void) |
This is equivalent to the following call: More... | |
BRP_LIB brp_errcode | brp_add_layer (brp_protocol composite_protocol, brp_layer_id layer_id) |
Adds a protocol layer without assigning a protocol to it. More... | |
BRP_LIB brp_errcode | brp_set_layer (brp_protocol composite_protocol, brp_layer_id layer_id, brp_protocol layer_protocol) |
Adds/replaces a protocol layer to a composite protocol. More... | |
BRP_LIB brp_protocol | brp_get_layer (brp_protocol composite_protocol, brp_layer_id layer_id) |
Retrieves a protocol layer from a composite protocol. More... | |
BRP_LIB brp_protocol | brp_detach_layer (brp_protocol composite_protocol, brp_layer_id layer_id) |
Removes a protocol from a composite protocol stack without destroying. More... | |
BRP_LIB brp_errcode | brp_set_io (brp_protocol protocol, brp_protocol io_protocol) |
Assigns an I/O protocol to a composite protocol (protocol stack). More... | |
BRP_LIB brp_errcode | brp_set_crypto (brp_protocol composite_protocol, brp_protocol crypto_protocol) |
Assigns a crypto protocol to a composite protocol (protocol stack). More... | |
BRP_LIB brp_errcode | brp_suppress_monitoring (brp_protocol protocol) |
Disables the monitoring feature of this library. More... | |
BRP_LIB brp_errcode | brp_set_monitor (brp_protocol protocol, int mode) |
When communicating encrypted (see brp_set_crypto()) the monitoring feature of this library logs the plaintext data. More... | |
A composite protocol is a container object, that provides a single protocol object for handling a stack of multiple sub-protocols at once.
This means all sub-protocols are opened/closed when the composite is opened/closed. Furthermore they are destroyed when the composite is destroyed.
ATTENTION: This means that a protocol added to a container must not be destroyed manually (except it is unlinked by brp_detach_layer()!
A composite is organized in layers, which are identified by unique integers (see BRP_LAYERID_..., like BRP_LAYERID_IO). The order of the layer is fix and is usually defined by the order of calling brp_add_layer() (or brp_set_layer(), which does an implicit brp_add_layer() if a layer is unknown yet). Via brp_set_layer() you can assign a protocol to a layer. When running a command / sending a frame, it will be internally routed from the topmost protocol to the bottom protocol.
The I/O layer may be a composite protocol on its own. In this case it is not part of the containing composite protocol stack. This means:
Definition in file composite_protocol.h.