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.