diff options
Diffstat (limited to 'core/src/Model/Workflow/Workflow.hpp')
-rw-r--r-- | core/src/Model/Workflow/Workflow.hpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/core/src/Model/Workflow/Workflow.hpp b/core/src/Model/Workflow/Workflow.hpp index db341af..139a96e 100644 --- a/core/src/Model/Workflow/Workflow.hpp +++ b/core/src/Model/Workflow/Workflow.hpp @@ -113,7 +113,7 @@ public: static const char* FormatType(Type type); static std::unique_ptr<WorkflowNode> CreateByKind(Kind kind); - WorkflowNode(Type type, Kind kind); + WorkflowNode(Kind kind); virtual ~WorkflowNode() = default; WorkflowNode(const WorkflowNode&) = delete; @@ -179,10 +179,24 @@ private: bool mDepthsDirty = true; public: + /* Graph access */ + + const std::vector<WorkflowConnection>& GetConnections() const; + std::vector<WorkflowConnection>& GetConnections(); + const std::vector<std::unique_ptr<WorkflowNode>>& GetNodes() const; + std::vector<std::unique_ptr<WorkflowNode>>& GetNodes(); + const std::vector<std::unique_ptr<BaseValue>>& GetConstants() const; + std::vector<std::unique_ptr<BaseValue>>& GetConstants(); + WorkflowConnection* GetConnectionById(size_t id); WorkflowNode* GetStepById(size_t id); BaseValue* GetConstantById(size_t id); + const std::vector<std::vector<size_t>>& GetDepthGroups() const; + bool DoesDepthNeedsUpdate() const; + + /* Graph mutation */ + void AddStep(std::unique_ptr<WorkflowNode> step); void RemoveStep(size_t id); @@ -192,8 +206,7 @@ public: bool DisconnectBySource(WorkflowNode& sourceNode, int sourcePin); bool DisconnectByDestination(WorkflowNode& destinationNode, int destinationPin); - const std::vector<std::vector<size_t>>& GetDepthGroups() const; - bool DoesDepthNeedsUpdate() const; + /* Graph rebuild */ struct GraphUpdate_Success {}; struct GraphUpdate_NoWorkToDo {}; @@ -213,6 +226,8 @@ public: /// When `getInfo == false, the corresponding error code is returned but without/with empty payloads. GraphUpdateResult UpdateGraph(bool getInfo = true); + /* Serialization */ + enum ReadResult { ReadSuccess, ReadInvalidVersion, |