#include "boostutils.h" namespace Pol { namespace boost_utils { flyweight_initializers::~flyweight_initializers() { #ifdef ENABLE_FLYWEIGHT_REPORT if ( Query::debug_flyweight_queries != nullptr ) delete Query::debug_flyweight_queries; Query::debug_flyweight_queries = nullptr; #endif } #ifdef ENABLE_FLYWEIGHT_REPORT std::vector* Query::debug_flyweight_queries = nullptr; bucket_query::bucket_query() { Query::add( this ); } void Query::add( bucket_query* b ) { if ( debug_flyweight_queries == nullptr ) debug_flyweight_queries = new std::vector; debug_flyweight_queries->push_back( b ); } std::vector> Query::getCountAndSize() { std::vector> res; for ( const auto& factory : *debug_flyweight_queries ) { res.emplace_back( factory->bucket_count(), factory->estimateSize() ); } return res; } #endif } // namespace boost_utils } // namespace Pol