32 #include <ibrcommon/net/vinterface.h>
33 #include <ibrcommon/net/vsocket.h>
34 #include <ibrcommon/link/LinkManager.h>
35 #include <ibrcommon/thread/Mutex.h>
39 using namespace dtn::data;
47 static const std::string
TAG;
53 void add(
const ibrcommon::vaddress &address);
54 void bind(
const ibrcommon::vinterface &net);
59 virtual const std::string getName()
const;
61 void eventNotify(
const ibrcommon::LinkEvent &evt);
71 void onAdvertiseBeacon(
const ibrcommon::vinterface &iface,
const DiscoveryBeacon &beacon)
throw ();
74 virtual void componentRun()
throw ();
75 virtual void componentUp()
throw ();
76 virtual void componentDown()
throw ();
77 void __cancellation()
throw ();
80 void join(
const ibrcommon::vinterface &iface)
throw ();
81 void leave(
const ibrcommon::vinterface &iface)
throw ();
83 void join(
const ibrcommon::vinterface &iface,
const ibrcommon::vaddress &addr)
throw ();
84 void leave(
const ibrcommon::vinterface &iface,
const ibrcommon::vaddress &addr)
throw ();
86 void send(
const DiscoveryBeacon &a,
const ibrcommon::vinterface &iface,
const ibrcommon::vaddress &addr);
89 ibrcommon::vinterface _virtual_mcast_iface;
92 ibrcommon::vsocket _socket;
96 std::set<ibrcommon::vaddress> _destinations;
98 ibrcommon::Mutex _interface_lock;
99 std::set<ibrcommon::vinterface> _interfaces;