33#include <unordered_set>
36#include <boost/date_time/posix_time/posix_time.hpp>
37#include <boost/optional/optional_fwd.hpp>
82 return std::atomic<uint32_t>::operator++();
86 return std::atomic<uint32_t>::operator++(fake);
128 return "before_handshake";
130 return "synchronizing";
#define s(x, c)
Definition aesb.c:47
Definition connection_context.h:67
uint32_t operator++(int fake)
Definition connection_context.h:84
uint32_t operator++()
Definition connection_context.h:80
copyable_atomic & operator=(const copyable_atomic &a)
Definition connection_context.h:75
copyable_atomic()
Definition connection_context.h:69
copyable_atomic(const copyable_atomic &a)
Definition connection_context.h:73
copyable_atomic(uint32_t value)
Definition connection_context.h:71
#define const
Definition ipfrdr.c:80
Definition portable_binary_archive.hpp:29
crypto namespace.
Definition crypto.cpp:60
POD_CLASS hash
Definition hash.h:49
Holds cryptonote related classes and helpers.
Definition blockchain_db.cpp:45
std::string get_protocol_state_string(cryptonote_connection_context::state s)
Definition connection_context.h:123
char get_protocol_state_char(cryptonote_connection_context::state s)
Definition connection_context.h:142
const GenericPointer< typename T::ValueType > T2 value
Definition pointer.h:1225
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1124
unsigned short uint16_t
Definition stdint.h:125
unsigned int uint32_t
Definition stdint.h:126
signed int int32_t
Definition stdint.h:123
unsigned __int64 uint64_t
Definition stdint.h:136
uint64_t m_expected_heights_start
Definition connection_context.h:107
copyable_atomic m_callback_request_count
Definition connection_context.h:109
copyable_atomic m_idle_peer_notification
Definition connection_context.h:120
boost::optional< crypto::hash > get_expected_hash(uint64_t height) const
Definition connection_context.cpp:85
uint64_t m_expect_height
Definition connection_context.h:117
std::unordered_set< crypto::hash > m_requested_objects
Definition connection_context.h:104
static size_t get_max_bytes(int command) noexcept
Definition connection_context.cpp:38
state
Definition connection_context.h:51
@ state_before_handshake
Definition connection_context.h:52
@ state_normal
Definition connection_context.h:56
@ state_standby
Definition connection_context.h:54
@ state_synchronizing
Definition connection_context.h:53
@ state_idle
Definition connection_context.h:55
cryptonote_connection_context()
Definition connection_context.h:45
int32_t m_score
Definition connection_context.h:115
std::vector< std::pair< crypto::hash, uint64_t > > m_needed_objects
Definition connection_context.h:102
uint64_t m_last_response_height
Definition connection_context.h:106
static constexpr int handshake_command() noexcept
Definition connection_context.h:90
std::vector< crypto::hash > m_expected_heights
Definition connection_context.h:103
crypto::hash m_last_known_hash
Definition connection_context.h:110
uint32_t m_rpc_credits_per_hash
Definition connection_context.h:113
size_t m_num_requested
Definition connection_context.h:118
void set_state_normal()
Use this instead of m_state = state_normal.
Definition connection_context.cpp:74
int m_expect_response
Definition connection_context.h:116
uint16_t m_rpc_port
Definition connection_context.h:112
uint64_t m_remote_blockchain_height
Definition connection_context.h:105
uint32_t m_pruning_seed
Definition connection_context.h:111
boost::posix_time::ptime m_last_request_time
Definition connection_context.h:108
state m_state
Definition connection_context.h:101
copyable_atomic m_new_stripe_notification
Definition connection_context.h:119
bool m_anchor
Definition connection_context.h:114
bool handshake_complete() const noexcept
Definition connection_context.h:91
Definition net_utils_base.h:367