OpenDDS
Snapshot(2023/04/28-20:55)
|
Event Handler that services multicast requests for IOR of a bootstrappable service. More...
#include <InfoRepoMulticastResponder.h>
Public Member Functions | |
InfoRepoMulticastResponder () | |
virtual | ~InfoRepoMulticastResponder () |
int | init (CORBA::ORB_ptr orb, u_short port, const char *mcast_addr) |
Initialization method. More... | |
int | init (CORBA::ORB_ptr orb, const char *mcast_addr) |
virtual int | handle_input (ACE_HANDLE n) |
Callback when input is received on the handle. More... | |
virtual int | handle_timeout (const ACE_Time_Value &tv, const void *arg) |
Callback when a timeout has occurred. More... | |
virtual ACE_HANDLE | get_handle () const |
Returns the internal handle used to receive multicast. More... | |
![]() | |
virtual | ~ACE_Event_Handler (void) |
virtual void | set_handle (ACE_HANDLE) |
virtual int | priority (void) const |
virtual void | priority (int priority) |
virtual int | handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_exit (ACE_Process *) |
virtual int | handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) |
virtual int | handle_signal (int signum, siginfo_t *=0, ucontext_t *=0) |
virtual int | resume_handler (void) |
virtual int | handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual int | handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual void | reactor (ACE_Reactor *reactor) |
virtual ACE_Reactor * | reactor (void) const |
virtual ACE_Reactor_Timer_Interface * | reactor_timer_interface (void) const |
virtual Reference_Count | add_reference (void) |
virtual Reference_Count | remove_reference (void) |
Reference_Counting_Policy & | reference_counting_policy (void) |
Private Member Functions | |
int | common_init (CORBA::ORB_ptr orb) |
Factor common functionality from the two init functions. More... | |
Private Attributes | |
bool | initialized_ |
Are we initialized? More... | |
CORBA::ORB_var | orb_ |
The ORB. More... | |
ACE_SOCK_Dgram_Mcast | mcast_dgram_ |
multicast endpoint of communication More... | |
ACE_INET_Addr | mcast_addr_ |
multicast address More... | |
ACE_INET_Addr | response_addr_ |
address of response. More... | |
ACE_SOCK_Dgram | response_ |
socket for response to the multicast More... | |
ACE_CString | mcast_nic_ |
Event Handler that services multicast requests for IOR of a bootstrappable service.
This class uses the ACE_SOCK_Dgram_Mcast class and should be registered with a reactor and should be initialized with the ior of the service to be multicasted.
Definition at line 42 of file InfoRepoMulticastResponder.h.
OpenDDS::Federator::InfoRepoMulticastResponder::InfoRepoMulticastResponder | ( | ) |
Definition at line 27 of file InfoRepoMulticastResponder.cpp.
|
virtual |
Definition at line 32 of file InfoRepoMulticastResponder.cpp.
References ACE_ERROR, ACE_TEXT(), initialized_, ACE_SOCK_Dgram_Mcast::leave(), LM_ERROR, and mcast_dgram_.
|
private |
Factor common functionality from the two init functions.
Definition at line 109 of file InfoRepoMulticastResponder.cpp.
References CORBA::ORB::_duplicate(), ACE_ERROR_RETURN, ACE_TEXT(), ACE_TEXT_CHAR_TO_TCHAR, ACE_String_Base< char >::c_str(), ACE_SOCK_Dgram_Mcast::DEFOPT_NULLIFACE, initialized_, ACE_SOCK_Dgram_Mcast::join(), ACE_String_Base< char >::length(), LM_ERROR, mcast_dgram_, mcast_nic_, ACE_SOCK_Dgram::open(), ACE_SOCK_Dgram_Mcast::OPT_BINDADDR_NO, ACE_SOCK_Dgram_Mcast::opts(), orb_, response_, response_addr_, and ACE_INET_Addr::set().
Referenced by init().
|
virtual |
Returns the internal handle used to receive multicast.
Reimplemented from ACE_Event_Handler.
Definition at line 42 of file InfoRepoMulticastResponder.cpp.
References ACE_IPC_SAP::get_handle(), and mcast_dgram_.
|
virtual |
Callback when input is received on the handle.
Reimplemented from ACE_Event_Handler.
Definition at line 159 of file InfoRepoMulticastResponder.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_ERROR_RETURN, ACE_HTONS, ACE_IPV6_LOCALHOST, ACE_NTOHS, ACE_TEXT(), OpenDDS::DCPS::LogAddr::c_str(), ACE_SOCK_Stream::close(), ACE_SOCK_Connector::connect(), OpenDDS::DCPS::DCPS_debug_level, ACE::get_ip_interfaces(), header, OpenDDS::DCPS::LogAddr::HostPort, TAO_Pseudo_Var_T< Object >::in(), ACE_INET_Addr::is_linklocal(), CORBA::is_nil(), LM_DEBUG, LM_ERROR, mcast_dgram_, MSG_PEEK, OPENDDS_END_VERSIONED_NAMESPACE_DECL, orb_, ACE_SOCK_Dgram::recv(), ACE_SOCK_Stream::sendv_n(), ACE_INET_Addr::set(), and ACE_INET_Addr::set_port_number().
|
virtual |
Callback when a timeout has occurred.
Reimplemented from ACE_Event_Handler.
Definition at line 152 of file InfoRepoMulticastResponder.cpp.
int OpenDDS::Federator::InfoRepoMulticastResponder::init | ( | CORBA::ORB_ptr | orb, |
u_short | port, | ||
const char * | mcast_addr | ||
) |
Initialization method.
Definition at line 48 of file InfoRepoMulticastResponder.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), common_init(), initialized_, LM_ERROR, mcast_addr_, and ACE_INET_Addr::set().
Referenced by OpenDDS::Federator::ManagerImpl::initialize().
int OpenDDS::Federator::InfoRepoMulticastResponder::init | ( | CORBA::ORB_ptr | orb, |
const char * | mcast_addr | ||
) |
Initialization method. Takes in "address:port" string as a parameter.
Save for use later.
Definition at line 64 of file InfoRepoMulticastResponder.cpp.
References ACE_ERROR_RETURN, ACE_TEXT(), common_init(), TAO::String_var< charT >::in(), initialized_, TAO::String_var< charT >::inout(), LM_ERROR, mcast_addr_, mcast_nic_, ACE_INET_Addr::set(), ACE_OS::strchr(), CORBA::string_alloc(), ACE_OS::strlen(), and ACE_OS::strncpy().
|
private |
Are we initialized?
Definition at line 76 of file InfoRepoMulticastResponder.h.
Referenced by common_init(), init(), and ~InfoRepoMulticastResponder().
|
private |
|
private |
multicast endpoint of communication
Definition at line 82 of file InfoRepoMulticastResponder.h.
Referenced by common_init(), get_handle(), handle_input(), and ~InfoRepoMulticastResponder().
|
private |
Definition at line 93 of file InfoRepoMulticastResponder.h.
Referenced by common_init(), and init().
|
private |
The ORB.
Definition at line 79 of file InfoRepoMulticastResponder.h.
Referenced by common_init(), and handle_input().
|
private |
socket for response to the multicast
Definition at line 91 of file InfoRepoMulticastResponder.h.
Referenced by common_init().
|
private |
address of response.
Definition at line 88 of file InfoRepoMulticastResponder.h.
Referenced by common_init().