示例#1
0
 Splitter(const Structure& structure)
     : m_structure(structure)
     , m_base()
     , m_fast(getNumFastTrackers(structure))
     , m_slow()
     , m_faux()
     , m_slowMutex()
 { }
示例#2
0
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))
{ }
示例#3
0
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));
            }
        }
    }
}