Class IPLocator

Class Documentation

class IPLocator

Class IPLocator, to provide helper functions to the IP based transports.

Public Static Functions

static RTPS_DllAPI void createLocator (int32_t kindin, const std::string &address, uint32_t portin, Locator_t &locator)

Fills locator with the given parameters.

Parameters:
  • kindin – Kind of the locator.

  • address – IP Address of the locator as string.

  • portin – Port of the locator.

  • locator – Locator to be filled.

static RTPS_DllAPI bool setIPv4 (Locator_t &locator, const unsigned char *addr)

Sets locator’s IPv4.

static RTPS_DllAPI bool setIPv4 (Locator_t &locator, octet o1, octet o2, octet o3, octet o4)

Sets locator’s IPv4.

static RTPS_DllAPI bool setIPv4 (Locator_t &locator, const std::string &ipv4)

Sets locator’s IPv4.

static RTPS_DllAPI bool setIPv4 (Locator_t &destlocator, const Locator_t &origlocator)

Copies locator’s IPv4.

static RTPS_DllAPI bool setIPv4address (Locator_t &destlocator, const std::string &lan, const std::string &wan, const std::string &ipv4)

Copies locator’s IPv4.

static RTPS_DllAPI const octet * getIPv4 (const Locator_t &locator)

Retrieves locator’s IPv4 as octet array.

static RTPS_DllAPI bool hasIPv4 (const Locator_t &locator)

Check if the locator has IPv4.

static RTPS_DllAPI std::string toIPv4string (const Locator_t &locator)

Returns a string representation of the locator’s IPv4.

static RTPS_DllAPI bool copyIPv4 (const Locator_t &locator, unsigned char *dest)

Copies locator’s IPv4.

static RTPS_DllAPI bool setIPv6 (Locator_t &locator, const unsigned char *addr)

Sets locator’s IPv6.

static RTPS_DllAPI bool setIPv6 (Locator_t &locator, uint16_t group0, uint16_t group1, uint16_t group2, uint16_t group3, uint16_t group4, uint16_t group5, uint16_t group6, uint16_t group7)

Sets locator’s IPv6.

static RTPS_DllAPI bool setIPv6 (Locator_t &locator, const std::string &ipv6)

Sets locator’s IPv6.

static RTPS_DllAPI bool setIPv6 (Locator_t &destlocator, const Locator_t &origlocator)

Copies locator’s IPv6.

static RTPS_DllAPI const octet * getIPv6 (const Locator_t &locator)

Retrieves locator’s IPv6 as octet array.

static RTPS_DllAPI bool hasIPv6 (const Locator_t &locator)

Check if the locator has IPv6.

static RTPS_DllAPI std::string toIPv6string (const Locator_t &locator)

Returns a string representation of the locator’s IPv6 following RFC 5952 recommendation.

static RTPS_DllAPI bool copyIPv6 (const Locator_t &locator, unsigned char *dest)

Copies locator’s IPv6.

static RTPS_DllAPI bool ip (Locator_t &locator, const std::string &ip)

Sets locator’s IP.

static RTPS_DllAPI std::string ip_to_string (const Locator_t &locator)

Returns a string representation of the locator’s IP.

static RTPS_DllAPI bool setLogicalPort (Locator_t &locator, uint16_t port)

Sets locator’s logical port (as in RTCP protocol)

static RTPS_DllAPI uint16_t getLogicalPort (const Locator_t &locator)

Gets locator’s logical port (as in RTCP protocol)

static RTPS_DllAPI bool setPhysicalPort (Locator_t &locator, uint16_t port)

Sets locator’s physical port (as in RTCP protocol)

static RTPS_DllAPI uint16_t getPhysicalPort (const Locator_t &locator)

Gets locator’s physical port (as in RTCP protocol)

static RTPS_DllAPI bool setWan (Locator_t &locator, octet o1, octet o2, octet o3, octet o4)

Sets locator’s WAN address (as in RTCP protocol)

static RTPS_DllAPI bool setWan (Locator_t &locator, const std::string &wan)

Sets locator’s WAN address (as in RTCP protocol)

static RTPS_DllAPI const octet * getWan (const Locator_t &locator)

Gets locator’s WAN address (as in RTCP protocol)

static RTPS_DllAPI bool hasWan (const Locator_t &locator)

Checks if the locator has WAN address (as in RTCP protocol)

static RTPS_DllAPI std::string toWanstring (const Locator_t &locator)

Retrieves a string representation of the locator’s WAN address (as in RTCP protocol)

static RTPS_DllAPI Locator_t WanToLanLocator (const Locator_t &locator)

This method is useful in the case of having a tcp client with an initial peer pointing to a WAN locator, and receiving a locator with LAN and WAN addresses (TCP Client from TCP Server)

static RTPS_DllAPI bool setLanID (Locator_t &locator, const std::string &lanId)

Sets locator’s LAN ID (as in RTCP protocol)

static RTPS_DllAPI const octet * getLanID (const Locator_t &locator)

Gets locator’s LAN ID (as in RTCP protocol)

static RTPS_DllAPI std::string toLanIDstring (const Locator_t &locator)

Retrieves a string representation of the locator’s LAN ID (as in RTCP protocol)

static RTPS_DllAPI Locator_t toPhysicalLocator (const Locator_t &locator)

Returns a new locator without logical port (as in RTCP protocol).

static RTPS_DllAPI bool ip_equals_wan (const Locator_t &locator)

Checks if a locator WAN address and IP address are the same (as in RTCP protocol).

static RTPS_DllAPI bool setPortRTPS (Locator_t &locator, uint16_t port)

Sets locator’s RTCP port. Physical for UDP and logical for TCP (as in RTCP protocol)

static RTPS_DllAPI uint16_t getPortRTPS (Locator_t &locator)

Gets locator’s RTCP port. Physical for UDP and logical for TCP (as in RTCP protocol)

static RTPS_DllAPI bool isLocal (const Locator_t &locator)

Checks if a locator has local IP address.

static RTPS_DllAPI bool isAny (const Locator_t &locator)

Checks if a locator has any IP address.

static RTPS_DllAPI bool compareAddress (const Locator_t &loc1, const Locator_t &loc2, bool fullAddress=false)

Checks if both locators has the same IP address.

static RTPS_DllAPI bool compareAddressAndPhysicalPort (const Locator_t &loc1, const Locator_t &loc2)

Checks if a both locators has the same IP address and physical port (as in RTCP protocol).

static RTPS_DllAPI std::string to_string (const Locator_t &locator)

Returns a string representation of the given locator.

static RTPS_DllAPI bool isMulticast (const Locator_t &locator)

Checks if the locator has a multicast IP address.

static RTPS_DllAPI std::pair< std::set< std::string >, std::set< std::string > > resolveNameDNS (const std::string &address_name)

Resolve an address name by a DNS request and return the IP that this address references by a DNS server.

static RTPS_DllAPI bool isIPv4 (const std::string &address)

Check whether a string contains an IPv4 format.

static RTPS_DllAPI bool isIPv6 (const std::string &address)

Check whether a string contains an IPv6 format.

Protected Static Functions

static bool isEmpty(const Locator_t &locator)
static bool isEmpty(const Locator_t &locator, uint16_t index)
static bool IPv6isCorrect(const std::string &ipv6)