Net++
A class-based C++ encapsulation over the POSIX Sockets API
Loading...
Searching...
No Matches
resolver.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "endpoint_info.hpp"
4#include "networking.hpp"
5#include "tcp.hpp"
6#include <cstdint>
7#include <netdb.h>
8#include <string>
9#include <vector>
10
11namespace conn_resolver {
12
17 int32_t endpoint_type = networking::socket_type::raw;
18 int32_t ip_domain = networking::domain::unspecified_domain;
19 int32_t protocol;
20 int32_t flags;
21};
22
29
35class Resolver {
36 using QueryResults = std::vector<AddressInfo>;
37 using RawResults = addrinfo *;
38public:
39
46 Resolver(std::string hostname, std::string service);
47
51 QueryResults results() const;
52
56 QueryResults udp_nodes() const;
57
61 QueryResults tcp_nodes() const;
62
69
75 void try_connect_udp(); // TODO: create UDPConnection class
76
80 void print_results() const;
81
82private:
83 QueryResults query_results_;
84};
85} // namespace resolver
The Resolver class.
Definition resolver.hpp:35
QueryResults tcp_nodes() const
Returns only TCP nodes in query_results.
void print_results() const
prints query results to stdout
tcp::Connection::connection_ptr try_connect_tcp()
Attempts to connect to the target host using protocol TCP.
Resolver(std::string hostname, std::string service)
The Resolver constructor.
void try_connect_udp()
Attempts to connect to the target host using protocol UDP.
QueryResults udp_nodes() const
Returns only UDP nodes in query_results_.
QueryResults results() const
Returns attribute query_results_.
std::shared_ptr< Connection > connection_ptr
Definition tcp.hpp:21
Definition resolver.hpp:11
addrinfo craft_resolver_hints(ResolverHints &hints)
Creates the raw struct addrinfo out of struct ResolverHints.
A structure to represent the hint parameters passed into getaddrinfo.
Definition resolver.hpp:16
int32_t protocol
Definition resolver.hpp:19
int32_t ip_domain
Definition resolver.hpp:18
int32_t flags
Definition resolver.hpp:20
int32_t endpoint_type
Definition resolver.hpp:17