OpenDDS  Snapshot(2023/04/28-20:55)
Classes | Namespaces | Functions
NetworkResource.h File Reference
#include "dcps_export.h"
#include "PoolAllocator.h"
#include <dds/OpenddsDcpsExtC.h>
#include <tao/Basic_Types.h>
#include <ace/INET_Addr.h>
#include <ace/CDR_Stream.h>
#include <ace/SString.h>
#include <ace/SOCK_Dgram.h>
#include <cstring>
Include dependency graph for NetworkResource.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenDDS::DCPS::HostnameInfo
 
struct  OpenDDS::DCPS::NetworkResource
 Defines a wrapper around address info which is used for advertise. More...
 

Namespaces

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

Functions

typedef OpenDDS::DCPS::OPENDDS_VECTOR (HostnameInfo) HostnameInfoVector
 
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 OPENDDS_VECTOR(ACE_INET_Addr)&addresses, bool prefer_loopback, const String &name)
 
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 String &address, bool prefer_loopback, bool allow_ipv4_fallback)
 
void OpenDDS::DCPS::assign (DDS::OctetArray16 &dest, ACE_CDR::ULong ipv4addr_be)
 
void OpenDDS::DCPS::address_to_bytes (DDS::OctetArray16 &dest, const ACE_INET_Addr &addr)
 
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)
 
OPENDDS_END_VERSIONED_NAMESPACE_DECL ACE_BEGIN_VERSIONED_NAMESPACE_DECL OpenDDS_Dcps_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &outCdr, OpenDDS::DCPS::NetworkResource &value)
 Marshal into a buffer. More...
 
OpenDDS_Dcps_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &inCdr, OpenDDS::DCPS::NetworkResource &value)
 Demarshal from a buffer. More...
 

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>>()

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)