OpenDDS  Snapshot(2023/04/28-20:55)
Namespaces | Macros | Functions
NetworkResource.cpp File Reference
#include "DCPS/DdsDcps_pch.h"
#include "NetworkResource.h"
#include "LogAddr.h"
#include "TimeTypes.h"
#include <ace/OS_NS_netdb.h>
#include <ace/Sock_Connect.h>
#include <ace/OS_NS_sys_socket.h>
#include <ace/OS_NS_arpa_inet.h>
#include <cstdlib>
#include <cstring>
#include "NetworkResource.inl"
Include dependency graph for NetworkResource.cpp:

Go to the source code of this file.

Namespaces

 OpenDDS
 The Internal API and Implementation of OpenDDS.
 
 OpenDDS::DCPS
 

Macros

#define TTL   ttl
 

Functions

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_CDR::Boolean operator<< (ACE_OutputCDR &outCdr, OpenDDS::DCPS::NetworkResource &value)
 Marshal into a buffer. More...
 
ACE_CDR::Boolean operator>> (ACE_InputCDR &inCdr, OpenDDS::DCPS::NetworkResource &value)
 Demarshal from a buffer. More...
 
bool OpenDDS::DCPS::verify_hostname (const String &hostname, ACE_INET_Addr *addr_array, size_t addr_count, bool prefer_loopback, bool allow_ipv4_fallback)
 
String OpenDDS::DCPS::get_fully_qualified_hostname (ACE_INET_Addr *addr)
 
void OpenDDS::DCPS::get_interface_addrs (OPENDDS_VECTOR(ACE_INET_Addr)&addrs)
 
bool OpenDDS::DCPS::set_socket_multicast_ttl (const ACE_SOCK_Dgram &socket, const unsigned char &ttl)
 
bool OpenDDS::DCPS::open_appropriate_socket_type (ACE_SOCK_Dgram &socket, const ACE_INET_Addr &local_address, int *proto_family)
 
ACE_INET_Addr OpenDDS::DCPS::choose_single_coherent_address (const ACE_INET_Addr &address, bool prefer_loopback)
 
ACE_INET_Addr OpenDDS::DCPS::choose_single_coherent_address (const OPENDDS_VECTOR(ACE_INET_Addr)&addresses, bool prefer_loopback, const String &name)
 
ACE_INET_Addr OpenDDS::DCPS::choose_single_coherent_address (const String &address, bool prefer_loopback, bool allow_ipv4_fallback)
 
int OpenDDS::DCPS::locator_to_address (ACE_INET_Addr &dest, const DCPS::Locator_t &locator, bool map)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::address_to_locator (Locator_t &locator, const ACE_INET_Addr &addr)
 

Macro Definition Documentation

◆ TTL

#define TTL   ttl

Function Documentation

◆ operator<<()

Marshal into a buffer.

Definition at line 30 of file NetworkResource.cpp.

References ACE_CDR_BYTE_ORDER, OpenDDS::DCPS::NetworkResource::addr_, and OpenDDS::DCPS::NetworkResource::reserved_.

31 {
32  return (outCdr << ACE_OutputCDR::from_boolean(ACE_CDR_BYTE_ORDER)) &&
33  (outCdr << ACE_OutputCDR::from_octet(value.reserved_)) &&
34  (outCdr << value.addr_.c_str());
35 }
String addr_
The address in string format. e.g. ip:port, hostname:port.

◆ operator>>()

ACE_CDR::Boolean operator>> ( ACE_InputCDR inCdr,
OpenDDS::DCPS::NetworkResource value 
)

Demarshal from a buffer.

Definition at line 38 of file NetworkResource.cpp.

References ACE_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::NetworkResource::addr_, ACE_InputCDR::good_bit(), OpenDDS::DCPS::NetworkResource::reserved_, and ACE_InputCDR::reset_byte_order().

39 {
40  CORBA::Boolean byte_order;
41 
42  if (!(inCdr >> ACE_InputCDR::to_boolean(byte_order)))
43  return false;
44 
45  inCdr.reset_byte_order(byte_order);
46 
47  if (!(inCdr >> ACE_InputCDR::to_octet(value.reserved_)))
48  return false;
49 
50  char* buf = 0;
51 
52  if (!(inCdr >> buf))
53  return false;
54 
55  value.addr_ = buf;
56 
57  delete[] buf;
58 
59  return inCdr.good_bit();
60 }
bool good_bit(void) const
String addr_
The address in string format. e.g. ip:port, hostname:port.
ACE_CDR::Boolean Boolean
void reset_byte_order(int byte_order)