10 #ifndef smtk_task_json_Helper_h
11 #define smtk_task_json_Helper_h
13 #include "smtk/task/json/Configurator.h"
15 #include "smtk/task/Adaptor.h"
16 #include "smtk/task/Task.h"
18 #include "smtk/common/Managers.h"
20 #include "smtk/common/UUID.h"
42 using json = nlohmann::json;
62 static Helper& pushInstance(
64 const smtk::common::Managers::Ptr& otherManagers);
75 static void popInstance();
80 static std::size_t nestingDepth();
82 Manager& taskManager() {
return *m_taskManager; }
95 void setManagers(
const smtk::common::Managers::Ptr& managers);
96 smtk::common::Managers::Ptr managers();
109 void currentTasks(std::vector<Task*>& tasks);
112 void currentAdaptors(std::vector<Adaptor*>& adaptors);
129 void setAdaptorTaskIds(SwizzleId fromId, SwizzleId toId);
131 void clearAdaptorTaskIds();
133 std::pair<Task*, Task*> getAdaptorTasks();
137 void setActiveSerializedTask(
Task* task);
138 Task* activeSerializedTask()
const;
143 Manager* m_taskManager{
nullptr };
144 Configurator<Task> m_tasks;
145 Configurator<Adaptor> m_adaptors;
146 Task* m_activeSerializedTask{
nullptr };
147 smtk::common::Managers::Ptr m_managers;
148 SwizzleId m_adaptorFromId = ~static_cast<SwizzleId>(0);
149 SwizzleId m_adaptorToId = ~static_cast<SwizzleId>(0);
155 bool m_topLevel{
true };
164 #include "smtk/task/json/Configurator.txx"
166 #endif // smtk_task_json_Helper_h