#include <ECG_Mcast_Gateway.h>
Collaboration diagram for TAO_ECG_Mcast_Gateway::Attributes:
Public Member Functions | |
Attributes (void) | |
Public Attributes | |
Address_Server_Type | address_server_type |
Handler_Type | handler_type |
Service_Type | service_type |
u_char | ttl_value |
ACE_CString | nic |
int | ip_multicast_loop |
int | non_blocking |
The TAO_ECG_Mcast_Gateway class has several properties that can be configured at initialization time, with default values. The canonical trick of using a constructor or init() method with multiple arguments does not work because to change the last argument the application developer needs to know all the other defaults.
Instead we define a helper class that initializes all the fields to reasonable defaults. The application only sets the fields that it is interested into, if new fields are added applications do not need to change.
With a little trickery we can even eliminate named temporaries:
TAO_ECG_Mcast_Gateway gw;
gw.init(TAO_ECG_Mcast_Gateway::Attributes().set_foo(x).set_bar(y));
but we are not implementing that one (detecting errors is too hard without exceptions and ACE+TAO are somewhat shy of exceptions at this point.)
TAO_ECG_Mcast_Gateway::Attributes::Attributes | ( | void | ) |