// TJP COPYRIGHT HEADER // // Timer.h // algorithm // // Created by Timothy Prepscius on 1/19/18. // Copyright © 2018 Timothy Prepscius. All rights reserved. // #pragma once #include "SchedulerPool.h" #include "Scheduler.hpp" #include #include #include #include namespace timprepscius { namespace core { namespace time { struct SchedulerPool : StrongThis { QMutex mutex; std::set events; std::atomic nextIndex; std::map onces; SchedulerPtr scheduler; SchedulerPool(); virtual ~SchedulerPool (); SchedulerEventPtr schedule(const SchedulerPtr &scheduler, Time period, std::function &&f); SchedulerEventPtr once(const SchedulerPtr &scheduler, Time offset, std::function &&f); void remove_once(size_t index); void remove_once_no_lock(size_t index); void clear(); } ; } // namespace } // namespace } // namespace