#include <RMCast_IO_UDP.h>
Inheritance diagram for ACE_RMCast_IO_UDP:
Public Member Functions | |
ACE_RMCast_IO_UDP (ACE_RMCast_Module_Factory *factory) | |
Constructor. | |
~ACE_RMCast_IO_UDP (void) | |
Destructor. | |
int | init (const ACE_INET_Addr &mcast_group, const ACE_Addr &local, int protocol_family=PF_INET, int protocol=0, int reuse_addr=0) |
Open the internal socket, but only to send multicast data. | |
int | subscribe (const ACE_INET_Addr &mcast_addr, int reuse_addr=1, const ACE_TCHAR *net_if=0, int protocol_family=PF_INET, int protocol=0) |
Join a new multicast group. | |
int | handle_events (ACE_Time_Value *tv=0) |
int | handle_input (ACE_HANDLE h) |
There is data to read, read it and process it. | |
ACE_HANDLE | get_handle (void) const |
Obtain the handle for the underlying socket. | |
virtual int | data (ACE_RMCast::Data &) |
Push data through the stack. | |
virtual int | poll (ACE_RMCast::Poll &) |
Push a polling request through the stack. | |
virtual int | ack_join (ACE_RMCast::Ack_Join &) |
Push a message to ack a join request through the stack. | |
virtual int | ack_leave (ACE_RMCast::Ack_Leave &) |
Push a message to ack a leave request through the stack. | |
virtual int | ack (ACE_RMCast::Ack &) |
Push an ack mesage through the stack. | |
virtual int | join (ACE_RMCast::Join &) |
Push a join message through the stack. | |
virtual int | leave (ACE_RMCast::Leave &) |
Push a leave message through the stack. | |
int | send_data (ACE_RMCast::Data &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_poll (ACE_RMCast::Poll &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_ack_join (ACE_RMCast::Ack_Join &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_ack_leave (ACE_RMCast::Ack_Leave &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_ack (ACE_RMCast::Ack &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_join (ACE_RMCast::Join &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
int | send_leave (ACE_RMCast::Leave &, const ACE_INET_Addr &) |
Send the message to the ACE_INET_Addr argument. | |
Private Types | |
typedef ACE_Hash_Map_Manager< ACE_INET_Addr, ACE_RMCast_UDP_Proxy *, ACE_Null_Mutex > | Map |
Use a Hash_Map to maintain the collection of proxies. | |
Private Member Functions | |
ACE_RMCast_UDP_Proxy * | allocate_and_bind_proxy (ACE_RMCast_Module *module, const ACE_INET_Addr &) |
Private Attributes | |
ACE_RMCast_Module_Factory * | factory_ |
The factory used to create the modules attached to each proxy. | |
ACE_INET_Addr | mcast_group_ |
The multicast group we subscribe and send to. | |
ACE_SOCK_Dgram_Mcast | dgram_ |
The socket used to receive and send data. | |
Map | map_ |
The collection of proxies. |
|
Use a Hash_Map to maintain the collection of proxies.
|
|
Constructor. The <factory> argument is used to create the modules for each proxy that process incoming messages. The class does *not* assume ownership of <factory>, the caller owns it. But it does assume ownership of the modules returned by the factory, and it may ask the factory to release them eventually. |
|
Destructor.
|
|
Push an ack mesage through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Push a message to ack a join request through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Push a message to ack a leave request through the stack.
Reimplemented from ACE_RMCast_Module. |
|
|
|
Push data through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Obtain the handle for the underlying socket.
|
|
Wait for events for the period <tv>. If <tv> is zero it blocks forever. |
|
There is data to read, read it and process it.
|
|
Open the internal socket, but only to send multicast data. It is not clear to me if this is a valid configuration. Maybe it would be a problem to expose two separate, incompatible interfaces (check the subscribe() method). However, the alternative would be to implement almost identical class for outgoing and incoming UDP I/O |
|
Push a join message through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Push a leave message through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Push a polling request through the stack.
Reimplemented from ACE_RMCast_Module. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Send the message to the ACE_INET_Addr argument. These methods are used in the implementation of the ACE_RMCast_UDP_Proxy objects and the implementation of the inherited ACE_RMCast_Module methods in this class. |
|
Join a new multicast group. Start receiving data for the <mcast_addr> multicast group. Please read the documentation of ACE_SOCK_Dgram_Mcast for more details. |
|
The socket used to receive and send data.
|
|
The factory used to create the modules attached to each proxy.
|
|
The collection of proxies.
|
|
The multicast group we subscribe and send to.
|