Splitter(const Structure& structure) : m_structure(structure) , m_base() , m_fast(getNumFastTrackers(structure)) , m_slow() , m_faux() , m_slowMutex() { }
Cold::Cold( arbiter::Endpoint& endpoint, const Builder& builder, const std::size_t clipPoolSize) : m_endpoint(endpoint) , m_builder(builder) , m_chunkVec(getNumFastTrackers(builder.structure())) , m_chunkMap() , m_mapMutex() , m_pool(new Pool(clipPoolSize, clipQueueSize)) { }
Cold::Cold( arbiter::Endpoint& endpoint, const Builder& builder, const std::size_t clipPoolSize, const Json::Value& jsonIds) : m_endpoint(endpoint) , m_builder(builder) , m_chunkVec(getNumFastTrackers(builder.structure())) , m_chunkMap() , m_mapMutex() , m_pool(new Pool(clipPoolSize, clipQueueSize)) { if (jsonIds.isArray()) { Id id(0); const Structure& structure(m_builder.structure()); for (std::size_t i(0); i < jsonIds.size(); ++i) { id = Id(jsonIds[static_cast<Json::ArrayIndex>(i)].asString()); const ChunkInfo chunkInfo(structure.getInfo(id)); const std::size_t chunkNum(chunkInfo.chunkNum()); if (chunkNum < m_chunkVec.size()) { m_chunkVec[chunkNum].mark.store(true); } else { std::unique_ptr<CountedChunk> c(new CountedChunk()); m_chunkMap.emplace(id, std::move(c)); } } } }