Monero
Loading...
Searching...
No Matches
enums.h
Go to the documentation of this file.
1// Copyright (c) 2018-2022, The Monero Project
2
3//
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without modification, are
7// permitted provided that the following conditions are met:
8//
9// 1. Redistributions of source code must retain the above copyright notice, this list of
10// conditions and the following disclaimer.
11//
12// 2. Redistributions in binary form must reproduce the above copyright notice, this list
13// of conditions and the following disclaimer in the documentation and/or other
14// materials provided with the distribution.
15//
16// 3. Neither the name of the copyright holder nor the names of its contributors may be
17// used to endorse or promote products derived from this software without specific
18// prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
21// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30#pragma once
31
32#include <boost/utility/string_ref.hpp>
33#include <cstdint>
34
35namespace epee
36{
37namespace net_utils
38{
39 enum class address_type : std::uint8_t
40 {
41 // Do not change values, this will break serialization
43 ipv4 = 1,
44 ipv6 = 2,
45 i2p = 3,
46 tor = 4
47 };
48
49 enum class zone : std::uint8_t
50 {
52 public_ = 1, // public is keyword
53 i2p = 2, // order from here changes priority of selection for origin TXes
54 tor = 3
55 };
56
57 // implementations in src/net_utils_base.cpp
58
60 const char* zone_to_string(zone value) noexcept;
61
63 zone zone_from_string(boost::string_ref value) noexcept;
64} // net_utils
65} // epee
66
67namespace std
68{
69 template<> struct hash<epee::net_utils::zone>
70 {
71 std::size_t operator()(const epee::net_utils::zone _z) const
72 {
73 return static_cast<std::size_t>(_z);
74 }
75 };
76} // std
Definition abstract_http_client.h:36
zone zone_from_string(boost::string_ref value) noexcept
Definition net_utils_base.cpp:151
const char * zone_to_string(zone value) noexcept
Definition net_utils_base.cpp:135
address_type
Definition enums.h:40
@ ipv4
Definition enums.h:43
@ i2p
Definition enums.h:45
@ tor
Definition enums.h:46
@ ipv6
Definition enums.h:44
@ invalid
Definition enums.h:42
zone
Definition enums.h:50
@ public_
Definition enums.h:52
TODO: (mj-xmr) This will be reduced in an another PR.
Definition byte_slice.h:40
Definition enums.h:68
const GenericPointer< typename T::ValueType > T2 value
Definition pointer.h:1225
std::size_t operator()(const epee::net_utils::zone _z) const
Definition enums.h:71