|
5G-MAG Reference Tools - MBMS Middleware
|
#include <ServiceAnnouncement.h>

Classes | |
| struct | Item |
Public Types | |
| typedef std::function< std::shared_ptr< Service >const std::string &service_id)> | get_service_callback_t |
| typedef std::function< void(const std::string &service_id, std::shared_ptr< Service >)> | set_service_callback_t |
Public Member Functions | |
| ServiceAnnouncement (const libconfig::Config &cfg, std::string tmgi, const std::string &mcast, unsigned long long tsi, std::string iface, boost::asio::io_service &io_service, CacheManagement &cache, bool seamless_switching, get_service_callback_t get_service, set_service_callback_t set_service) | |
| virtual | ~ServiceAnnouncement () |
| const std::vector< Item > & | items () const |
| const std::string & | content () const |
| uint32_t | toi () const |
| void | parse_bootstrap (const std::string &str) |
| Parse the service announcement/bootstrap file. More... | |
| void | start_flute_receiver (const std::string &mcast_address) |
| Starts the FLUTE receiver at the specified multicast address. More... | |
Private Member Functions | |
| void | _addServiceAnnouncementItems (const std::string &str) |
| Iterates through the service announcement file and adds the different sections/items to the the list of _items. More... | |
| void | _handleMbmsEnvelope (const Item &item) |
| Parses the MBMS envelope. More... | |
| void | _handleMbmbsUserServiceDescriptionBundle (const Item &item, const std::string &bootstrap_format) |
| Parses the MBMS USD. More... | |
| std::tuple< std::shared_ptr< MBMS_RT::Service >, bool > | _registerService (tinyxml2::XMLElement *usd, const std::string &service_id) |
| Creates a new service or finds an existing service for the specified service id. More... | |
| void | _handleAppService (tinyxml2::XMLElement *app_service, const std::shared_ptr< Service > &service) |
| Parse the appService element Spec: Presence of the r12:appService child element of userServiceDescription indicates that the associated MBMS User Service is an application service explicitly linked to the r12:broadcastAppService and r12:unicastAppService elements under deliveryMethod. More... | |
| bool | _setupBroadcastDelivery (tinyxml2::XMLElement *usd, std::string base, std::shared_ptr< ContentStream > cs) |
| void | _setupByAlternativeContentElement (tinyxml2::XMLElement *app_service, const std::shared_ptr< MBMS_RT::Service > &service, tinyxml2::XMLElement *usd) |
| Setup according to original SA format with an alternativeContentElement required to indicate that the stream is available via BC and UC. More... | |
| void | _setupBy5GMagConfig (tinyxml2::XMLElement *app_service, const std::shared_ptr< MBMS_RT::Service > &service, tinyxml2::XMLElement *usd) |
| void | _setupBy5GMagLegacyFormat (tinyxml2::XMLElement *app_service, const std::shared_ptr< MBMS_RT::Service > &service, tinyxml2::XMLElement *usd) |
| Setup according to the format that was used for the first 5G-MAG sample recordings. More... | |
Private Attributes | |
| get_service_callback_t | _get_service |
| set_service_callback_t | _set_service |
| bool | _seamless = false |
| std::vector< Item > | _items |
| const libconfig::Config & | _cfg |
| bool | _bootstrapped = false |
| uint32_t | _toi = {} |
| std::string | _raw_content |
| std::string | _iface |
| std::string | _tmgi |
| std::string | _mcast_addr |
| std::string | _mcast_port |
| std::string | _base_path |
| unsigned long long | _tsi = 0 |
| std::thread | _flute_thread |
| std::unique_ptr< LibFlute::Receiver > | _flute_receiver |
| boost::asio::io_service & | _io_service |
| CacheManagement & | _cache |
Definition at line 32 of file ServiceAnnouncement.h.
| typedef std::function<std::shared_ptr<Service>const std::string &service_id)> MBMS_RT::ServiceAnnouncement::get_service_callback_t |
Definition at line 34 of file ServiceAnnouncement.h.
| typedef std::function<void(const std::string &service_id, std::shared_ptr<Service>)> MBMS_RT::ServiceAnnouncement::set_service_callback_t |
Definition at line 35 of file ServiceAnnouncement.h.
| MBMS_RT::ServiceAnnouncement::ServiceAnnouncement | ( | const libconfig::Config & | cfg, |
| std::string | tmgi, | ||
| const std::string & | mcast, | ||
| unsigned long long | tsi, | ||
| std::string | iface, | ||
| boost::asio::io_service & | io_service, | ||
| CacheManagement & | cache, | ||
| bool | seamless_switching, | ||
| get_service_callback_t | get_service, | ||
| set_service_callback_t | set_service | ||
| ) |
Definition at line 36 of file ServiceAnnouncement.cpp.
|
virtual |
Definition at line 48 of file ServiceAnnouncement.cpp.
|
private |
Iterates through the service announcement file and adds the different sections/items to the the list of _items.
| {std::string} | str |
Definition at line 121 of file ServiceAnnouncement.cpp.
|
private |
Parse the appService element Spec: Presence of the r12:appService child element of userServiceDescription indicates that the associated MBMS User Service is an application service explicitly linked to the r12:broadcastAppService and r12:unicastAppService elements under deliveryMethod.
| usd | |
| app_service | |
| service |
Definition at line 272 of file ServiceAnnouncement.cpp.
|
private |
Parses the MBMS USD.
| {MBMS_RT::ServiceAnnouncement::Item} | item |
Definition at line 197 of file ServiceAnnouncement.cpp.
|
private |
Parses the MBMS envelope.
| {MBMS_RT::ServiceAnnouncement::Item} | item |
Definition at line 165 of file ServiceAnnouncement.cpp.
|
private |
Creates a new service or finds an existing service for the specified service id.
| usd | |
| service_id |
Definition at line 241 of file ServiceAnnouncement.cpp.
|
private |
|
private |
Definition at line 299 of file ServiceAnnouncement.cpp.
|
private |
Setup according to the format that was used for the first 5G-MAG sample recordings.
| app_service | |
| service | |
| usd |
Definition at line 419 of file ServiceAnnouncement.cpp.
|
private |
Setup according to original SA format with an alternativeContentElement required to indicate that the stream is available via BC and UC.
| app_service | |
| service | |
| usd |
Definition at line 481 of file ServiceAnnouncement.cpp.
|
inline |
Definition at line 56 of file ServiceAnnouncement.h.
|
inline |
Definition at line 54 of file ServiceAnnouncement.h.
| auto MBMS_RT::ServiceAnnouncement::parse_bootstrap | ( | const std::string & | str | ) |
Parse the service announcement/bootstrap file.
| str |
Definition at line 95 of file ServiceAnnouncement.cpp.
| auto MBMS_RT::ServiceAnnouncement::start_flute_receiver | ( | const std::string & | mcast_address | ) |
Starts the FLUTE receiver at the specified multicast address.
Includes a callback function that is called once a file has been received via multicast Used for receiving a service announcement file via multicast
| mcast_address |
Definition at line 61 of file ServiceAnnouncement.cpp.
|
inline |
Definition at line 58 of file ServiceAnnouncement.h.
|
private |
Definition at line 83 of file ServiceAnnouncement.h.
|
private |
Definition at line 75 of file ServiceAnnouncement.h.
|
private |
Definition at line 89 of file ServiceAnnouncement.h.
|
private |
Definition at line 73 of file ServiceAnnouncement.h.
|
private |
Definition at line 86 of file ServiceAnnouncement.h.
|
private |
Definition at line 85 of file ServiceAnnouncement.h.
|
private |
Definition at line 66 of file ServiceAnnouncement.h.
|
private |
Definition at line 79 of file ServiceAnnouncement.h.
|
private |
Definition at line 88 of file ServiceAnnouncement.h.
|
private |
Definition at line 71 of file ServiceAnnouncement.h.
|
private |
Definition at line 81 of file ServiceAnnouncement.h.
|
private |
Definition at line 82 of file ServiceAnnouncement.h.
|
private |
Definition at line 78 of file ServiceAnnouncement.h.
|
private |
Definition at line 69 of file ServiceAnnouncement.h.
|
private |
Definition at line 67 of file ServiceAnnouncement.h.
|
private |
Definition at line 80 of file ServiceAnnouncement.h.
|
private |
Definition at line 77 of file ServiceAnnouncement.h.
|
private |
Definition at line 84 of file ServiceAnnouncement.h.