libe3 0.2.5
C++ library for E3AP RAN vendor integration
Loading...
Searching...
No Matches
libe3::JsonE3Encoder Class Reference

JSON encoder for E3AP PDUs. More...

#include <json_encoder.hpp>

Inheritance diagram for libe3::JsonE3Encoder:
libe3::E3Encoder

Public Member Functions

 JsonE3Encoder ()=default
 ~JsonE3Encoder () override=default
EncodeResult< EncodedMessage > encode (const Pdu &pdu) override
 Encode a PDU to bytes.
EncodeResult< Pdu > decode (const EncodedMessage &encoded) override
 Decode bytes to a PDU.
EncodeResult< Pdu > decode (const uint8_t *data, size_t size) override
 Decode bytes to a PDU.
EncodingFormat format () const noexcept override
 Get the encoding format.
Public Member Functions inherited from libe3::E3Encoder
virtual ~E3Encoder ()=default
 E3Encoder (const E3Encoder &)=delete
E3Encoder & operator= (const E3Encoder &)=delete
 E3Encoder (E3Encoder &&)=default
E3Encoder & operator= (E3Encoder &&)=default
EncodeResult< EncodedMessage > encode_setup_request (uint32_t message_id, const std::string &e3ap_protocol_version, const std::string &dapp_name, const std::string &dapp_version, const std::string &vendor)
 Create and encode a Setup Request PDU.
EncodeResult< EncodedMessage > encode_setup_response (uint32_t message_id, uint32_t request_id, ResponseCode response_code, const std::optional< std::string > &e3ap_protocol_version=std::nullopt, const std::optional< uint32_t > &dapp_identifier=std::nullopt, const std::string &ran_identifier="", const std::optional< std::vector< RanFunctionDef > > &ran_function_list=std::nullopt)
 Create and encode a Setup Response PDU.
EncodeResult< EncodedMessage > encode_subscription_request (uint32_t message_id, uint32_t dapp_identifier, uint32_t ran_function_identifier, const std::vector< uint32_t > &telemetry_identifier_list, const std::vector< uint32_t > &control_identifier_list, const std::optional< uint32_t > &subscription_time=std::nullopt)
 Create and encode a Subscription Request PDU.
EncodeResult< EncodedMessage > encode_subscription_delete (uint32_t message_id, uint32_t dapp_identifier, uint32_t subscription_id)
 Create and encode a Subscription Delete PDU.
EncodeResult< EncodedMessage > encode_subscription_response (uint32_t message_id, uint32_t request_id, uint32_t dapp_identifier, ResponseCode response_code, const std::optional< uint32_t > &subscription_id=std::nullopt)
 Create and encode a Subscription Response PDU.
EncodeResult< EncodedMessage > encode_indication_message (uint32_t message_id, uint32_t dapp_identifier, uint32_t ran_function_identifier, const std::vector< uint8_t > &protocol_data)
 Create and encode an Indication Message PDU.
EncodeResult< EncodedMessage > encode_dapp_control_action (uint32_t message_id, uint32_t dapp_identifier, uint32_t ran_function_identifier, uint32_t control_identifier, const std::vector< uint8_t > &action_data)
 Create and encode a dApp Control Action PDU.
EncodeResult< EncodedMessage > encode_dapp_report (uint32_t message_id, uint32_t dapp_identifier, uint32_t ran_function_identifier, const std::vector< uint8_t > &report_data)
 Create and encode a dApp Report PDU.
EncodeResult< EncodedMessage > encode_xapp_control_action (uint32_t message_id, uint32_t dapp_identifier, uint32_t ran_function_identifier, const std::vector< uint8_t > &xapp_control_data)
 Create and encode an xApp Control Action PDU.
EncodeResult< EncodedMessage > encode_message_ack (uint32_t message_id, uint32_t request_id, ResponseCode response_code)
 Create and encode a Message Acknowledgment PDU.

Additional Inherited Members

Protected Member Functions inherited from libe3::E3Encoder
 E3Encoder ()=default

Detailed Description

JSON encoder for E3AP PDUs.

Provides JSON encoding/decoding for development and debugging.

JSON wire format uses camelCase keys (e.g. "dAppName", "ranFunctionIdentifier") and camelCase PDU type strings (e.g. "setupRequest", "indicationMessage"). PascalCase PDU types are rejected by the decoder.

Envelope format is flat: payload fields sit alongside "type", "id", and "timestamp" at root level. Messages with a "data" wrapper are rejected.

Definition at line 29 of file json_encoder.hpp.

Constructor & Destructor Documentation

◆ JsonE3Encoder()

libe3::JsonE3Encoder::JsonE3Encoder ( )
default

◆ ~JsonE3Encoder()

libe3::JsonE3Encoder::~JsonE3Encoder ( )
overridedefault

Member Function Documentation

◆ decode() [1/2]

EncodeResult< Pdu > libe3::JsonE3Encoder::decode ( const EncodedMessage & encoded)
overridevirtual

Decode bytes to a PDU.

Parameters
encodedEncoded message to decode
Returns
Decoded PDU on success, error code on failure

Implements libe3::E3Encoder.

Definition at line 598 of file json_encoder.cpp.

◆ decode() [2/2]

EncodeResult< Pdu > libe3::JsonE3Encoder::decode ( const uint8_t * data,
size_t size )
overridevirtual

Decode bytes to a PDU.

Parameters
dataRaw data buffer
sizeSize of data
Returns
Decoded PDU on success, error code on failure

Implements libe3::E3Encoder.

Definition at line 602 of file json_encoder.cpp.

◆ encode()

EncodeResult< EncodedMessage > libe3::JsonE3Encoder::encode ( const Pdu & pdu)
overridevirtual

Encode a PDU to bytes.

Parameters
pduPDU to encode
Returns
Encoded message on success, error code on failure

Implements libe3::E3Encoder.

Definition at line 501 of file json_encoder.cpp.

◆ format()

EncodingFormat libe3::JsonE3Encoder::format ( ) const
inlineoverridevirtualnoexcept

Get the encoding format.

Implements libe3::E3Encoder.

Definition at line 37 of file json_encoder.hpp.


The documentation for this class was generated from the following files: