|
libe3 0.2.5
C++ library for E3AP RAN vendor integration
|
E3 Subscription Manager. More...
#include <subscription_manager.hpp>
Public Member Functions | |
| SubscriptionManager () | |
| Construct a new Subscription Manager. | |
| ~SubscriptionManager () | |
| Destructor. | |
| SubscriptionManager (const SubscriptionManager &)=delete | |
| SubscriptionManager & | operator= (const SubscriptionManager &)=delete |
| SubscriptionManager (SubscriptionManager &&)=delete | |
| SubscriptionManager & | operator= (SubscriptionManager &&)=delete |
| void | set_sm_lifecycle_callback (SmLifecycleCallback callback) |
| Set callback for SM lifecycle events. | |
| std::pair< ErrorCode, uint32_t > | register_dapp () |
| Register a dApp from E3 Setup Request. | |
| ErrorCode | unregister_dapp (uint32_t dapp_id) |
| Unregister a dApp and clean up all its subscriptions. | |
| bool | is_dapp_registered (uint32_t dapp_id) const |
| Check if a dApp is registered. | |
| std::vector< uint32_t > | get_registered_dapps () const |
| Get list of registered dApp IDs. | |
| std::pair< ErrorCode, uint32_t > | add_subscription (uint32_t dapp_id, uint32_t ran_function_id, const std::vector< uint32_t > &telemetry_ids={}, const std::vector< uint32_t > &control_ids={}, uint32_t periodicity_us=0) |
| Add a subscription between dApp and RAN function. | |
| ErrorCode | remove_subscription (uint32_t dapp_id, uint32_t ran_function_id) |
| Remove a subscription between dApp and RAN function. | |
| ErrorCode | remove_subscription_by_id (uint32_t dapp_id, uint32_t subscription_id) |
| Remove a subscription by its ID. | |
| bool | is_subscribed (uint32_t dapp_id, uint32_t ran_function_id) const |
| Check if dApp is subscribed to a RAN function. | |
| std::vector< uint32_t > | get_dapp_subscriptions (uint32_t dapp_id) const |
| Get all RAN functions a dApp is subscribed to. | |
| std::vector< uint32_t > | get_subscribed_dapps (uint32_t ran_function_id) const |
| Get all dApps subscribed to a RAN function. | |
| const SubscriptionDetails * | get_subscription_details (uint32_t dapp_id, uint32_t ran_function_id) const |
| Get subscription details for a specific dApp + RAN function pair. | |
| size_t | get_subscriber_count (uint32_t ran_function_id) const |
| Get count of subscribers for a RAN function. | |
| std::vector< uint32_t > | get_active_ran_functions () const |
| Get all RAN functions that have at least one subscriber. | |
| bool | has_subscribers (uint32_t ran_function_id) const |
| Check if any dApp is subscribed to a RAN function. | |
| size_t | dapp_count () const |
| Get total number of registered dApps. | |
| size_t | subscription_count () const |
| Get total number of active subscriptions. | |
| void | clear () |
| Clear all registrations and subscriptions. | |
E3 Subscription Manager.
Thread-safe manager for dApp registrations and RAN function subscriptions. Handles:
This class is ported from the original C e3_subscription_manager with modern C++ idioms for thread safety and memory management.
Definition at line 59 of file subscription_manager.hpp.
| libe3::SubscriptionManager::SubscriptionManager | ( | ) |
Construct a new Subscription Manager.
Definition at line 32 of file subscription_manager.cpp.
| libe3::SubscriptionManager::~SubscriptionManager | ( | ) |
Destructor.
Definition at line 36 of file subscription_manager.cpp.
|
delete |
|
delete |
| std::pair< ErrorCode, uint32_t > libe3::SubscriptionManager::add_subscription | ( | uint32_t | dapp_id, |
| uint32_t | ran_function_id, | ||
| const std::vector< uint32_t > & | telemetry_ids = {}, | ||
| const std::vector< uint32_t > & | control_ids = {}, | ||
| uint32_t | periodicity_us = 0 ) |
Add a subscription between dApp and RAN function.
| dapp_id | dApp identifier |
| ran_function_id | RAN function identifier (0-255) |
| telemetry_ids | Telemetry IDs the dApp wants |
| control_ids | Control IDs the dApp wants |
| periodicity_us | Reporting periodicity in microseconds (0 = SM default) |
Definition at line 154 of file subscription_manager.cpp.
| void libe3::SubscriptionManager::clear | ( | ) |
Clear all registrations and subscriptions.
Definition at line 406 of file subscription_manager.cpp.
| size_t libe3::SubscriptionManager::dapp_count | ( | ) | const |
Get total number of registered dApps.
Definition at line 391 of file subscription_manager.cpp.
| std::vector< uint32_t > libe3::SubscriptionManager::get_active_ran_functions | ( | ) | const |
Get all RAN functions that have at least one subscriber.
Definition at line 368 of file subscription_manager.cpp.
| std::vector< uint32_t > libe3::SubscriptionManager::get_dapp_subscriptions | ( | uint32_t | dapp_id | ) | const |
Get all RAN functions a dApp is subscribed to.
Definition at line 323 of file subscription_manager.cpp.
| std::vector< uint32_t > libe3::SubscriptionManager::get_registered_dapps | ( | ) | const |
Get list of registered dApp IDs.
Definition at line 140 of file subscription_manager.cpp.
| std::vector< uint32_t > libe3::SubscriptionManager::get_subscribed_dapps | ( | uint32_t | ran_function_id | ) | const |
Get all dApps subscribed to a RAN function.
Definition at line 333 of file subscription_manager.cpp.
| size_t libe3::SubscriptionManager::get_subscriber_count | ( | uint32_t | ran_function_id | ) | const |
Get count of subscribers for a RAN function.
Definition at line 354 of file subscription_manager.cpp.
| const SubscriptionDetails * libe3::SubscriptionManager::get_subscription_details | ( | uint32_t | dapp_id, |
| uint32_t | ran_function_id ) const |
Get subscription details for a specific dApp + RAN function pair.
Definition at line 343 of file subscription_manager.cpp.
| bool libe3::SubscriptionManager::has_subscribers | ( | uint32_t | ran_function_id | ) | const |
Check if any dApp is subscribed to a RAN function.
Definition at line 380 of file subscription_manager.cpp.
| bool libe3::SubscriptionManager::is_dapp_registered | ( | uint32_t | dapp_id | ) | const |
Check if a dApp is registered.
| dapp_id | dApp identifier |
Definition at line 135 of file subscription_manager.cpp.
| bool libe3::SubscriptionManager::is_subscribed | ( | uint32_t | dapp_id, |
| uint32_t | ran_function_id ) const |
Check if dApp is subscribed to a RAN function.
Definition at line 313 of file subscription_manager.cpp.
|
delete |
|
delete |
| std::pair< ErrorCode, uint32_t > libe3::SubscriptionManager::register_dapp | ( | ) |
Register a dApp from E3 Setup Request.
The SubscriptionManager assigns a unique dApp ID automatically.
Definition at line 55 of file subscription_manager.cpp.
| ErrorCode libe3::SubscriptionManager::remove_subscription | ( | uint32_t | dapp_id, |
| uint32_t | ran_function_id ) |
Remove a subscription between dApp and RAN function.
| dapp_id | dApp identifier |
| ran_function_id | RAN function identifier |
Definition at line 222 of file subscription_manager.cpp.
| ErrorCode libe3::SubscriptionManager::remove_subscription_by_id | ( | uint32_t | dapp_id, |
| uint32_t | subscription_id ) |
Remove a subscription by its ID.
| dapp_id | dApp identifier |
| subscription_id | Subscription ID |
Definition at line 264 of file subscription_manager.cpp.
| void libe3::SubscriptionManager::set_sm_lifecycle_callback | ( | SmLifecycleCallback | callback | ) |
Set callback for SM lifecycle events.
Definition at line 46 of file subscription_manager.cpp.
| size_t libe3::SubscriptionManager::subscription_count | ( | ) | const |
Get total number of active subscriptions.
Definition at line 396 of file subscription_manager.cpp.
| ErrorCode libe3::SubscriptionManager::unregister_dapp | ( | uint32_t | dapp_id | ) |
Unregister a dApp and clean up all its subscriptions.
| dapp_id | dApp identifier |
Definition at line 79 of file subscription_manager.cpp.