OpenDDS  Snapshot(2023/04/28-20:55)
NetworkConfigModifier.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_NETWORKCONFIGMODIFIER_H
9 #define OPENDDS_DCPS_NETWORKCONFIGMODIFIER_H
10 
11 #include "ace/config.h"
12 
13 // ACE_HAS_GETIFADDRS is not set on android but is available in API >= 24
14 #if ((!defined (ACE_LINUX) && defined(ACE_HAS_GETIFADDRS)) || (defined(ACE_ANDROID) && !defined ACE_LACKS_IF_NAMEINDEX)) && !defined(OPENDDS_SAFETY_PROFILE)
15 
16 #define OPENDDS_NETWORK_CONFIG_MODIFIER
17 
18 #include "NetworkConfigMonitor.h"
19 #include "dcps_export.h"
20 
22 
23 namespace OpenDDS {
24 namespace DCPS {
25 
26 class OpenDDS_Dcps_Export NetworkConfigModifier : public NetworkConfigMonitor {
27 public:
28  bool open();
29  bool close();
30  void update_interfaces();
31 
32  void add_interface(const OPENDDS_STRING& name);
33  void remove_interface(const OPENDDS_STRING& name);
34  void add_address(const OPENDDS_STRING& name,
35  bool can_multicast,
36  const ACE_INET_Addr& addr);
37  void remove_address(const OPENDDS_STRING& name, const ACE_INET_Addr& addr);
38 };
39 typedef RcHandle<NetworkConfigModifier> NetworkConfigModifier_rch;
40 
41 } // DCPS
42 } // OpenDDS
43 
45 
46 #endif // ACE_HAS_GETIFADDRS && ! OPENDDS_SAFETY_PROFILE
47 
48 #endif // OPENDDS_DCPS_NETWORKCONFIGMODIFIER_H
#define OpenDDS_Dcps_Export
Definition: dcps_export.h:24
int close(ACE_HANDLE handle)
#define OPENDDS_STRING
ACE_HANDLE open(const char *filename, int mode, mode_t perms=ACE_DEFAULT_OPEN_PERMS, LPSECURITY_ATTRIBUTES sa=0)
const char *const name
Definition: debug.cpp:60
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28