# Gio::SrvTarget Class Reference
Portable Network I/O Functionality

DNS SRV record target. More...

`#include <giomm/srvtarget.h>`

List of all members.

## Public Member Functions

| SrvTarget ()
| SrvTarget (GSrvTarget* gobject, bool make_a_copy=true)
| SrvTarget (const SrvTarget& other)
SrvTarget& | operator= (const SrvTarget& other)
| ~SrvTarget ()
void | swap (SrvTarget& other)
GSrvTarget* | gobj ()
| Provides access to the underlying C instance.
const GSrvTarget* | gobj () const
| Provides access to the underlying C instance.
GSrvTarget* | gobj_copy () const
| Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
| SrvTarget (const Glib::ustring& hostname, guint16 port, guint16 priority, guint16 weight)
Glib::ustring | get_hostname () const
| Gets target's hostname (in ASCII form; if you are going to present this to the user, you should use Glib::hostname_is_ascii_encoded() to check if it contains encoded Unicode segments, and use Glib::hostname_to_unicode() to convert it if it does.)
guint16 | get_port () const
| Gets target's port.
guint16 | get_priority () const
| Gets target's priority.
guint16 | get_weight () const
| Gets target's weight.

## Protected Attributes

GSrvTarget* | gobject_

## Related Functions

(Note that these are not member functions.)
void | swap (SrvTarget& lhs, SrvTarget& rhs)
Gio::SrvTarget | wrap (GSrvTarget* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

DNS SRV record target.

SRV (service) records are used by some network protocols to provide service-specific aliasing and load-balancing. For example, XMPP (Jabber) uses SRV records to locate the XMPP server for a domain; rather than connecting directly to "example.com" or assuming a specific server hostname like "xmpp.example.com", an XMPP client would look up the "xmpp-client" SRV record for "example.com", and then connect to whatever host was pointed to by that record.

You can use Resolver::lookup_service() or Resolver::lookup_service_async() to find the SrvTargets for a given service. However, if you are simply planning to connect to the remote service, you can use NetworkService's SocketConnectable interface and not need to worry about SrvTarget at all.

Since glibmm 2.24:

## Constructor & Destructor Documentation

Gio::SrvTarget::SrvTarget | ( |  | ) |

Gio::SrvTarget::SrvTarget | ( | GSrvTarget * | gobject,
|  | bool | make_a_copy = `true`
| ) |  | `[explicit]`

Gio::SrvTarget::SrvTarget | ( | const SrvTarget& | other | ) |

Gio::SrvTarget::~SrvTarget | ( |  | ) |

Gio::SrvTarget::SrvTarget | ( | const Glib::ustring& | hostname,
|  | guint16 | port,
|  | guint16 | priority,
|  | guint16 | weight
| ) |  |

## Member Function Documentation

Glib::ustring Gio::SrvTarget::get_hostname | ( |  | ) | const

Gets target's hostname (in ASCII form; if you are going to present this to the user, you should use Glib::hostname_is_ascii_encoded() to check if it contains encoded Unicode segments, and use Glib::hostname_to_unicode() to convert it if it does.)

Since glibmm 2.22:

Returns:
  target's hostname.

guint16 Gio::SrvTarget::get_port | ( |  | ) | const

Gets target's port.

Since glibmm 2.22:

Returns:
  target's port.

guint16 Gio::SrvTarget::get_priority | ( |  | ) | const

Gets target's priority.

You should not need to look at this; Resolver already sorts the targets according to the algorithm in RFC 2782.

Since glibmm 2.22:

Returns:
  target's priority.

guint16 Gio::SrvTarget::get_weight | ( |  | ) | const

Gets target's weight.

You should not need to look at this; Resolver already sorts the targets according to the algorithm in RFC 2782.

Since glibmm 2.22:

Returns:
  target's weight.

GSrvTarget* Gio::SrvTarget::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C instance.

const GSrvTarget* Gio::SrvTarget::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C instance.

GSrvTarget* Gio::SrvTarget::gobj_copy | ( |  | ) | const

Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.

SrvTarget& Gio::SrvTarget::operator= | ( | const SrvTarget& | other | ) |

void Gio::SrvTarget::swap | ( | SrvTarget& | other | ) |

## Friends And Related Function Documentation

void swap | ( | SrvTarget& | lhs,
|  | SrvTarget& | rhs
| ) |  | `[related]`

Parameters:

  lhs | The left-hand side
  rhs | The right-hand side

Gio::SrvTarget wrap | ( | GSrvTarget * | object,
|  | bool | take_copy = `false`
| ) |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

## Member Data Documentation

GSrvTarget* Gio::SrvTarget::gobject_ `[protected]`