#include <source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h>
Inherits ariba::utility::BootstrapModule, and ariba::utility::Timer.
Classes | |
class | Service |
class | udp_server |
Public Member Functions | |
PeriodicBroadcast (BootstrapInformationCallback *_callback) | |
virtual | ~PeriodicBroadcast () |
virtual void | start () |
virtual void | stop () |
virtual string | getName () |
virtual string | getInformation () |
virtual bool | isFunctional () |
virtual void | publishService (string name, string info1, string info2, string info3) |
virtual void | revokeService (string name) |
Protected Member Functions | |
virtual void | eventFunction () |
Private Types | |
typedef map< string, Service > | ServiceList |
Private Member Functions | |
use_logging_h (PeriodicBroadcast) | |
void | sendLocalServices () |
void | updateRemoteServices () |
Static Private Member Functions | |
static void | threadFunc (PeriodicBroadcast *obj) |
Private Attributes | |
ServiceList | localServices |
boost::mutex | localServicesMutex |
ServiceList | remoteServices |
boost::mutex | remoteServicesMutex |
ServiceList | newRemoteServices |
boost::mutex | newRemoteServicesMutex |
boost::asio::io_service | io_service |
boost::thread * | io_service_thread |
udp_server | server |
Static Private Attributes | |
static const long | timerinterval = 1 |
static const long | servicetimeout = 3 |
static const unsigned int | serverport_v4 = 5634 |
static const unsigned int | serverport_v6 = 5636 |
Definition at line 65 of file PeriodicBroadcast.h.
typedef map<string,Service> ariba::utility::PeriodicBroadcast::ServiceList [private] |
Definition at line 172 of file PeriodicBroadcast.h.
ariba::utility::PeriodicBroadcast::PeriodicBroadcast | ( | BootstrapInformationCallback * | _callback | ) |
Definition at line 65 of file PeriodicBroadcast.cpp.
ariba::utility::PeriodicBroadcast::~PeriodicBroadcast | ( | ) | [virtual] |
Definition at line 70 of file PeriodicBroadcast.cpp.
void ariba::utility::PeriodicBroadcast::eventFunction | ( | ) | [protected, virtual] |
Reimplemented from ariba::utility::Timer.
Definition at line 120 of file PeriodicBroadcast.cpp.
References sendLocalServices(), and updateRemoteServices().
string ariba::utility::PeriodicBroadcast::getInformation | ( | ) | [virtual] |
string ariba::utility::PeriodicBroadcast::getName | ( | ) | [virtual] |
bool ariba::utility::PeriodicBroadcast::isFunctional | ( | ) | [virtual] |
void ariba::utility::PeriodicBroadcast::publishService | ( | string | name, | |
string | info1, | |||
string | info2, | |||
string | info3 | |||
) | [virtual] |
Implements ariba::utility::BootstrapModule.
Definition at line 106 of file PeriodicBroadcast.cpp.
References localServices, and localServicesMutex.
void ariba::utility::PeriodicBroadcast::revokeService | ( | string | name | ) | [virtual] |
Implements ariba::utility::BootstrapModule.
Definition at line 113 of file PeriodicBroadcast.cpp.
References localServices, and localServicesMutex.
void ariba::utility::PeriodicBroadcast::sendLocalServices | ( | ) | [private] |
Definition at line 125 of file PeriodicBroadcast.cpp.
References localServices, localServicesMutex, ariba::utility::PeriodicBroadcast::PeriodicBroadcast::udp_server::sendservice(), and server.
Referenced by eventFunction().
void ariba::utility::PeriodicBroadcast::start | ( | ) | [virtual] |
Implements ariba::utility::BootstrapModule.
Definition at line 89 of file PeriodicBroadcast.cpp.
References io_service_thread, ariba::utility::Timer::setInterval(), threadFunc(), and timerinterval.
void ariba::utility::PeriodicBroadcast::stop | ( | ) | [virtual] |
Implements ariba::utility::BootstrapModule.
Definition at line 97 of file PeriodicBroadcast.cpp.
References io_service, and io_service_thread.
void ariba::utility::PeriodicBroadcast::threadFunc | ( | PeriodicBroadcast * | obj | ) | [static, private] |
void ariba::utility::PeriodicBroadcast::updateRemoteServices | ( | ) | [private] |
Definition at line 135 of file PeriodicBroadcast.cpp.
References ariba::utility::BootstrapModule::callback, ariba::utility::PeriodicBroadcast::PeriodicBroadcast::Service::getInfo1(), ariba::utility::PeriodicBroadcast::PeriodicBroadcast::Service::getInfo2(), ariba::utility::PeriodicBroadcast::PeriodicBroadcast::Service::getInfo3(), ariba::utility::PeriodicBroadcast::PeriodicBroadcast::Service::getLastseen(), newRemoteServices, newRemoteServicesMutex, ariba::utility::BootstrapInformationCallback::onBootstrapServiceFound(), remoteServices, remoteServicesMutex, and servicetimeout.
Referenced by eventFunction().
ariba::utility::PeriodicBroadcast::use_logging_h | ( | PeriodicBroadcast | ) | [private] |
boost::asio::io_service ariba::utility::PeriodicBroadcast::io_service [private] |
boost::thread* ariba::utility::PeriodicBroadcast::io_service_thread [private] |
Definition at line 174 of file PeriodicBroadcast.h.
Referenced by publishService(), revokeService(), and sendLocalServices().
boost::mutex ariba::utility::PeriodicBroadcast::localServicesMutex [private] |
Definition at line 175 of file PeriodicBroadcast.h.
Referenced by publishService(), revokeService(), and sendLocalServices().
boost::mutex ariba::utility::PeriodicBroadcast::newRemoteServicesMutex [private] |
boost::mutex ariba::utility::PeriodicBroadcast::remoteServicesMutex [private] |
const unsigned int ariba::utility::PeriodicBroadcast::serverport_v4 = 5634 [static, private] |
Definition at line 89 of file PeriodicBroadcast.h.
Referenced by ariba::utility::PeriodicBroadcast::PeriodicBroadcast::udp_server::open4(), and ariba::utility::PeriodicBroadcast::PeriodicBroadcast::udp_server::sendservice().
const unsigned int ariba::utility::PeriodicBroadcast::serverport_v6 = 5636 [static, private] |
Definition at line 90 of file PeriodicBroadcast.h.
Referenced by ariba::utility::PeriodicBroadcast::PeriodicBroadcast::udp_server::open6(), and ariba::utility::PeriodicBroadcast::PeriodicBroadcast::udp_server::sendservice().
const long ariba::utility::PeriodicBroadcast::servicetimeout = 3 [static, private] |
const long ariba::utility::PeriodicBroadcast::timerinterval = 1 [static, private] |