Initial commit

This commit is contained in:
Matthias
2017-04-11 15:49:21 +02:00
commit ec80b339e2
2081 changed files with 968992 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include <wfr/common/wfs/ActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class AtomicActivityImplementation;
class AssignActivityInstance: public wfr::wfs::ActivityInstance {
// Public functions
public:
AssignActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: ActivityInstance(baseActivity, iterationID) {}
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
virtual bool executeExecutionHook(bool earlyEvaluation) override;
virtual void notifyParent() noexcept;
};
} /* namespace wfs */
} /* namespace wfr */
+33
View File
@@ -0,0 +1,33 @@
#pragma once
#include <wfr/common/wfs/ActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class AtomicActivityImplementation;
class AtomicActivityInstance: public wfr::wfs::ActivityInstance {
// Mutable properties that need to be accessed via getter-/setter-functions.
protected:
bool _ownedByExecutionLayer = false;
// Public functions
public:
AtomicActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: ActivityInstance(baseActivity, iterationID) {}
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
bool ownedByExecutionLayer() const noexcept { return _ownedByExecutionLayer; }
void setOwnedByExecutionLayer(bool owned) noexcept { _ownedByExecutionLayer = owned; }
};
} /* namespace wfs */
} /* namespace wfr */
@@ -0,0 +1,48 @@
#pragma once
#include <wfr/common/wfs/ActivityInstance.h>
#include <map>
namespace wfr {
// Forward declaration
namespace enactment {
class WepBuilder;
}
namespace wfs {
// Forward declarations
class Activity;
class CompositeActivityInstance: public wfr::wfs::ActivityInstance {
friend class enactment::WepBuilder;
// Mutable properties that need to be accessed via getter-/setter-functions.
protected:
std::vector<ActivityInstance*> children;
std::map<wfr_size_t, ActivityInstance*> childrenByInstanceID;
std::map<wfr_size_t, std::vector<ActivityInstance*>> childrenByActivityID;
wfr_size_t finishedChildrenCount = 0;
// Public functions
public:
CompositeActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: ActivityInstance(baseActivity, iterationID) {}
wfr_size_t getChildrenCount() const noexcept { return children.size(); }
const std::vector<ActivityInstance*>& getChildren() const noexcept { return children; }
ActivityInstance* getChild(wfr_id_t instanceID) const noexcept;
ActivityInstance* getChild(wfr_id_t activityID, wfr_id_t iterationID) const noexcept;
wfr_size_t getFinishedChildrenCount() const noexcept { return finishedChildrenCount; }
virtual void notifyChildHasFinished(ActivityInstance& ai) noexcept;
};
} /* namespace wfs */
} /* namespace wfr */
@@ -0,0 +1,34 @@
#pragma once
#include <wfr/common/wfs/instances/CompositeActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class ConditionalActivityInstance: public CompositeActivityInstance {
// Mutable properties that need to be accessed via getter-/setter-functions.
private:
wfr_size_t activeExecutionBranchID = 0;
// Public functions
public:
ConditionalActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: CompositeActivityInstance(baseActivity, iterationID) {}
wfr_id_t getExecutionBranchID() const noexcept { return activeExecutionBranchID; }
void setExecutionBranchID(wfr_size_t branchId) noexcept { this->activeExecutionBranchID = branchId; }
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
virtual bool executePostExecutionHooks(bool earlyEvaluation) override;
};
} /* namespace wfs */
} /* namespace wfr */
@@ -0,0 +1,26 @@
#pragma once
#include <wfr/common/wfs/instances/CompositeActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class ContainerActivityInstance: public CompositeActivityInstance {
// Public functions
public:
ContainerActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: CompositeActivityInstance(baseActivity, iterationID) {}
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
virtual bool executePostExecutionHooks(bool earlyEvalation) override;
};
} /* namespace wfs */
} /* namespace wfr */
+50
View File
@@ -0,0 +1,50 @@
#pragma once
#include <wfr/common/wfs/instances/LoopActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class ForLoopActivityInstance: public LoopActivityInstance {
// Mutable properties that need to be accessed via getter-/setter-functions.
private:
wfr_size_t loopCounterStart = 0;
wfr_size_t loopCounterStep = 1;
wfr_size_t loopCounterMax = 0;
bool loopCounterValueSet = false;
// Public functions
public:
ForLoopActivityInstance(Activity& baseActivity, bool isParallel, wfr_id_t iterationID = 0) noexcept
: LoopActivityInstance(baseActivity, isParallel, iterationID) {}
void setLoopCounter(wfr_size_t start, wfr_size_t step, wfr_size_t max);
wfr_size_t getLoopCounterStart() const noexcept { return loopCounterStart; }
wfr_size_t getLoopCounterStep() const noexcept { return loopCounterStep; }
wfr_size_t getLoopCounterMax() const noexcept { return loopCounterMax; }
bool isLoopCounterValueAvailable() const noexcept { return loopCounterValueSet; }
wfr_size_t getLoopCounterValue(wfr_id_t iterationID) const noexcept { return loopCounterStart + (iterationID * loopCounterStep); }
virtual void notifyChildHasFinished(ActivityInstance& ai) noexcept;
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
virtual bool executePostExecutionHooks(bool earlyEvaluation) override;
};
} /* namespace wfs */
} /* namespace wfr */
+75
View File
@@ -0,0 +1,75 @@
#pragma once
#include <wfr/common/wfs/instances/CompositeActivityInstance.h>
#include <vector>
namespace wfr {
// Forward declarations
namespace enactment {
class WepBuilder;
}
namespace wfs {
// Forward declarations
class Activity;
class LoopActivityInstance: public CompositeActivityInstance {
friend class enactment::WepBuilder;
// Mutable properties that need to be accessed via getter-/setter-functions.
protected:
wfr_size_t iterationCount = 0;
wfr_size_t handledIterationCount = 0;
bool finalisedFlag = false;
std::vector<wfr_size_t> finishedChildrenPerIteration;
std::vector<bool> finishedIterations;
std::vector<bool> runningIterations;
// Invariant properties that can be accessed directly.
public:
const bool isParallel;
// Public functions
public:
LoopActivityInstance(Activity& baseActivity, bool isParallel, wfr_id_t iterationID = 0) noexcept
: CompositeActivityInstance(baseActivity, iterationID), isParallel(isParallel) {}
wfr_size_t getIterationCount() const noexcept { return iterationCount; }
void setIterationCount(wfr_size_t count) noexcept;
void setHandledIterationCount(wfr_size_t handledIterationCount) noexcept { this->handledIterationCount = handledIterationCount; }
wfr_size_t getHandledIterationCount() const noexcept { return handledIterationCount; }
bool isFinalised() const noexcept { return finalisedFlag; }
void setFinalised(bool v) noexcept { finalisedFlag = v; }
bool hasIterationFinished(wfr_id_t iterationID) const noexcept {
if (iterationID < finishedIterations.size())
return finishedIterations[iterationID];
else
return false;
}
bool isIterationRunning(wfr_id_t iterationID)const noexcept {
if (iterationID < runningIterations.size())
return runningIterations[iterationID];
else
return false;
}
ActivityInstanceStatus getIterationInstanceStatus(wfr_id_t iterationID) const noexcept;
virtual void notifyChildHasFinished(ActivityInstance& ai) noexcept override;
};
} /* namespace wfs */
} /* namespace wfr */
@@ -0,0 +1,29 @@
#pragma once
#include <wfr/common/wfs/instances/LoopActivityInstance.h>
namespace wfr {
namespace wfs {
// Forward declarations
class Activity;
class WhileLoopActivityInstance : public LoopActivityInstance {
// Public functions
public:
WhileLoopActivityInstance(Activity& baseActivity, wfr_id_t iterationID = 0) noexcept
: LoopActivityInstance(baseActivity, false, iterationID) {}
virtual bool executePreExecutionHooks(bool earlyEvaluation) override;
virtual bool executePostExecutionHooks(bool earlyEvaluation) override;
virtual void notifyChildHasFinished(ActivityInstance& ai) noexcept;
};
} /* namespace wfs */
} /* namespace wfr */