rpc_manager::rpc_manager(node_id const& our_id , routing_table& table, udp_socket_interface* sock) : m_pool_allocator(observer_size, 10) , m_sock(sock) , m_table(table) , m_timer(time_now()) , m_our_id(our_id) , m_allocated_observers(0) , m_destructing(false) { std::srand((unsigned int)time(0)); #ifdef TORRENT_DHT_VERBOSE_LOGGING TORRENT_LOG(rpc) << "Constructing"; #define PRINT_OFFSETOF(x, y) TORRENT_LOG(rpc) << " +" << offsetof(x, y) << ": " #y TORRENT_LOG(rpc) << " observer: " << sizeof(observer); PRINT_OFFSETOF(dht::observer, m_sent); PRINT_OFFSETOF(dht::observer, m_refs); PRINT_OFFSETOF(dht::observer, m_algorithm); PRINT_OFFSETOF(dht::observer, m_id); PRINT_OFFSETOF(dht::observer, m_addr); PRINT_OFFSETOF(dht::observer, m_port); PRINT_OFFSETOF(dht::observer, m_transaction_id); PRINT_OFFSETOF(dht::observer, flags); TORRENT_LOG(rpc) << " announce_observer: " << sizeof(announce_observer); TORRENT_LOG(rpc) << " null_observer: " << sizeof(null_observer); TORRENT_LOG(rpc) << " find_data_observer: " << sizeof(find_data_observer); #undef PRINT_OFFSETOF #endif }
rpc_manager::rpc_manager(node_id const& our_id , routing_table& table, send_fun const& sf , void* userdata , external_ip_fun ext_ip) : m_pool_allocator(observer_size, 10) , m_send(sf) , m_userdata(userdata) , m_our_id(our_id) , m_table(table) , m_timer(time_now()) , m_random_number(generate_random_id()) , m_allocated_observers(0) , m_destructing(false) , m_ext_ip(ext_ip) { std::srand(time(0)); #ifdef TORRENT_DHT_VERBOSE_LOGGING TORRENT_LOG(rpc) << "Constructing"; #define PRINT_OFFSETOF(x, y) TORRENT_LOG(rpc) << " +" << offsetof(x, y) << ": " #y TORRENT_LOG(rpc) << " observer: " << sizeof(observer); PRINT_OFFSETOF(observer, m_sent); PRINT_OFFSETOF(observer, m_refs); PRINT_OFFSETOF(observer, m_algorithm); PRINT_OFFSETOF(observer, m_id); PRINT_OFFSETOF(observer, m_addr); PRINT_OFFSETOF(observer, m_port); PRINT_OFFSETOF(observer, m_transaction_id); PRINT_OFFSETOF(observer, flags); TORRENT_LOG(rpc) << " announce_observer: " << sizeof(announce_observer); TORRENT_LOG(rpc) << " null_observer: " << sizeof(null_observer); TORRENT_LOG(rpc) << " find_data_observer: " << sizeof(find_data_observer); #undef PRINT_OFFSETOF #endif }