Monero
Public Member Functions | Public Attributes | List of all members
cryptonote::levin::detail::zone Struct Reference
Collaboration diagram for cryptonote::levin::detail::zone:
Collaboration graph
[legend]

Public Member Functions

 zone (boost::asio::io_service &io_service, std::shared_ptr< connections > p2p, epee::byte_slice noise_in, bool is_public, bool pad_txs)
 

Public Attributes

const std::shared_ptr< connectionsp2p
 
const epee::byte_slice noise
 !empty() means zone is using noise channels More...
 
boost::asio::steady_timer next_epoch
 
boost::asio::steady_timer flush_txs
 
boost::asio::io_service::strand strand
 
net::dandelionpp::connection_map map
 Tracks outgoing uuid's for noise channels or Dandelion++ stems. More...
 
std::deque< noise_channel > channels
 Never touch after init; only update elements on noise_channel.strand More...
 
std::chrono::steady_clock::time_point flush_time
 Next expected Dandelion++ fluff flush. More...
 
std::atomic< std::size_t > connection_count
 Only update in strand, can be read at any time. More...
 
const bool is_public
 Zone is public ipv4/ipv6 connections. More...
 
const bool pad_txs
 Pad txs to the next boundary for privacy. More...
 
bool fluffing
 Zone is in Dandelion++ fluff epoch. More...
 

Constructor & Destructor Documentation

◆ zone()

cryptonote::levin::detail::zone::zone ( boost::asio::io_service &  io_service,
std::shared_ptr< connections p2p,
epee::byte_slice  noise_in,
bool  is_public,
bool  pad_txs 
)
inlineexplicit

Member Data Documentation

◆ channels

std::deque<noise_channel> cryptonote::levin::detail::zone::channels

Never touch after init; only update elements on noise_channel.strand

◆ connection_count

std::atomic<std::size_t> cryptonote::levin::detail::zone::connection_count

Only update in strand, can be read at any time.

◆ fluffing

bool cryptonote::levin::detail::zone::fluffing

Zone is in Dandelion++ fluff epoch.

◆ flush_time

std::chrono::steady_clock::time_point cryptonote::levin::detail::zone::flush_time

Next expected Dandelion++ fluff flush.

◆ flush_txs

boost::asio::steady_timer cryptonote::levin::detail::zone::flush_txs

◆ is_public

const bool cryptonote::levin::detail::zone::is_public

Zone is public ipv4/ipv6 connections.

◆ map

net::dandelionpp::connection_map cryptonote::levin::detail::zone::map

Tracks outgoing uuid's for noise channels or Dandelion++ stems.

◆ next_epoch

boost::asio::steady_timer cryptonote::levin::detail::zone::next_epoch

◆ noise

const epee::byte_slice cryptonote::levin::detail::zone::noise

!empty() means zone is using noise channels

◆ p2p

const std::shared_ptr<connections> cryptonote::levin::detail::zone::p2p

◆ pad_txs

const bool cryptonote::levin::detail::zone::pad_txs

Pad txs to the next boundary for privacy.

◆ strand

boost::asio::io_service::strand cryptonote::levin::detail::zone::strand

The documentation for this struct was generated from the following file: