struct Nodes {
good_node_services: [HashSet<SockAddr>; 64],
nodes_to_state: HashMap<SockAddr, Node>,
struct Nodes {
good_node_services: [HashSet<SockAddr>; 64],
nodes_to_state: HashMap<SockAddr, Node>,
state_next_scan: [Vec<SockAddr>; AddressState::get_count() as usize],
}
struct NodesMutRef<'a> {
good_node_services: &'a mut [HashSet<SockAddr>; 64],
nodes_to_state: &'a mut HashMap<SockAddr, Node>,
state_next_scan: [Vec<SockAddr>; AddressState::get_count() as usize],
}
struct NodesMutRef<'a> {
good_node_services: &'a mut [HashSet<SockAddr>; 64],
nodes_to_state: &'a mut HashMap<SockAddr, Node>,
NodesMutRef {
good_node_services: &mut self.good_node_services,
nodes_to_state: &mut self.nodes_to_state,
NodesMutRef {
good_node_services: &mut self.good_node_services,
nodes_to_state: &mut self.nodes_to_state,
u64_settings: RwLock<HashMap<U64Setting, u64>>,
subver_regex: RwLock<Arc<Regex>>,
nodes: RwLock<Nodes>,
u64_settings: RwLock<HashMap<U64Setting, u64>>,
subver_regex: RwLock<Arc<Regex>>,
nodes: RwLock<Nodes>,
u64_settings: RwLock::new(u64_settings),
subver_regex: RwLock::new(Arc::new(regex)),
nodes: RwLock::new(nodes),
u64_settings: RwLock::new(u64_settings),
subver_regex: RwLock::new(Arc::new(regex)),
nodes: RwLock::new(nodes),
self.nodes.read().unwrap().state_next_scan[state.to_num() as usize].len()
}
pub fn get_bloom_node_count(&self) -> [usize; crate::bloom::GENERATION_COUNT] {
self.nodes.read().unwrap().state_next_scan[state.to_num() as usize].len()
}
pub fn get_bloom_node_count(&self) -> [usize; crate::bloom::GENERATION_COUNT] {
pub fn set_node_state(&self, sockaddr: SocketAddr, state: AddressState, services: u64) -> AddressState {
let addr: SockAddr = sockaddr.into();
pub fn set_node_state(&self, sockaddr: SocketAddr, state: AddressState, services: u64) -> AddressState {
let addr: SockAddr = sockaddr.into();
let now = (Instant::now() - self.start_time).as_secs().try_into().unwrap();
let mut nodes_lock = self.nodes.write().unwrap();
let now = (Instant::now() - self.start_time).as_secs().try_into().unwrap();
let mut nodes_lock = self.nodes.write().unwrap();