// // ToyRepeatedActionScheduler.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 27.05.2017. // // #ifndef ToyRepeatedActionScheduler_h #define ToyRepeatedActionScheduler_h #include "json/document.h" #include #include #include "cocos2d.h" class ActionParseDelegate; class ToyRepeatedActionScheduler { public: struct ScheduledActionsData { std::string callbackKey; std::string storedValueKey; long long lastTimeRun; }; static ToyRepeatedActionScheduler& getInstance() { static ToyRepeatedActionScheduler instance; return instance; }; void clearAllScheduledActions(ActionParseDelegate* parseDelegate); cocos2d::Action* scheduleActionIfNeeded(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); bool isActionValidRepeatedAction(const rapidjson::Value& jsonActionObject); protected: std::map _scheduledActionsData; std::map> _waitingFunctions; }; #endif /* ToyRepeatedActionScheduler_h */