/* * SimpleDBModel.h * * Created on: 09.05.2014 * Author: matthias */ #ifndef SIMPLEDBMODEL_H_ #define SIMPLEDBMODEL_H_ #include #include #include #include #include namespace wfr { namespace eventsystem { #pragma db namespace session namespace odbmodel { class Workflow; class Activity; class ActivityInstance; class WorkflowStatusEvent; class ActivityStatusEvent; class ActivityInstanceStatusEvent; #pragma db value(wfr_id_t) type("BigInt") #pragma db value(wfr_size_t) type("BigInt") #pragma db object pointer(std::shared_ptr) class Workflow { friend class odb::access; private: #pragma db id auto uint32_t oid; wfr_id_t wfid; std::string uuid; std::string name; #pragma db inverse(parentWorkflow) std::vector> activities; std::weak_ptr toplevelActivity; #pragma db inverse(parentWorkflow) std::vector> statusEvents; public: Workflow() : oid(0), wfid(0) {} Workflow(wfr_id_t wfid, std::string uuid) : oid(0), wfid(wfid), uuid(uuid) {} std::vector >& getActivities() { return activities; } const std::string& getName() const { return name; } void setName(const std::string& name) { this->name = name; } const std::weak_ptr& getToplevelActivity() const { return toplevelActivity; } void setToplevelActivity(const std::weak_ptr& toplevelActivity) { this->toplevelActivity = toplevelActivity; } wfr_id_t getOid() const { return oid; } const std::string& getUuid() const { return uuid; } wfr_id_t getWfid() const { return wfid; } void setWfid(wfr_id_t wfid) { this->wfid = wfid; } }; #pragma db object pointer(std::shared_ptr) class WorkflowStatusEvent { friend class odb::access; private: #pragma db id auto uint32_t oid; #pragma db not_null std::shared_ptr parentWorkflow; std::string newStatus; std::string oldStatus; uint64_t timestamp; public: WorkflowStatusEvent() : oid(0), timestamp(0) {} const std::string& getNewStatus() { return newStatus; } void setNewStatus(const std::string& newStatus) { this->newStatus = newStatus; } wfr_id_t getOid() { return oid; } const std::string& getOldStatus() { return oldStatus; } void setOldStatus(const std::string& oldStatus) { this->oldStatus = oldStatus; } const std::shared_ptr& getParentWorkflow() { return parentWorkflow; } void setParentWorkflow(const std::shared_ptr& parentWorkflow) { this->parentWorkflow = parentWorkflow; } uint64_t getTimestamp() { return timestamp; } void setTimestamp(uint64_t timestamp) { this->timestamp = timestamp; } }; #pragma db object pointer(std::shared_ptr) class Activity { friend class odb::access; private: #pragma db id auto uint32_t oid; wfr_id_t actid; std::string name; #pragma db not_null std::shared_ptr parentWorkflow; std::shared_ptr parent; #pragma db inverse(parentActivity) std::vector> statusEvents; std::string type; wfr_id_t branchID; #pragma db inverse(baseActivity) std::vector> instances; std::vector> successors; std::vector> predecessors; public: Activity() : oid(0), actid(0), branchID(0) {} Activity(wfr_id_t actid, wfr_id_t branchid) : oid(0), actid(actid), branchID(branchid) {} wfr_id_t getBranchId() const { return branchID; } std::vector >& getInstances() { return instances; } const std::string& getName() const { return name; } void setName(const std::string& name) { this->name = name; } const std::shared_ptr& getParentWorkflow() const { return parentWorkflow; } void setParentWorkflow(const std::shared_ptr& parentWorkflow) { this->parentWorkflow = parentWorkflow; } const std::shared_ptr& getParent() const { return parent; } void setParent(const std::shared_ptr& parent) { this->parent = parent; } std::vector >& getPredecessors() { return predecessors; } std::vector >& getSuccessors() { return successors; } const std::string& getType() const { return type; } void setType(const std::string& type) { this->type = type; } wfr_id_t getOid() const { return oid; } wfr_id_t getActid() const { return actid; } void setActid(wfr_id_t actid) { this->actid = actid; } }; #pragma db object pointer(std::shared_ptr) class ActivityStatusEvent { friend class odb::access; private: #pragma db id auto uint32_t oid; #pragma db not_null std::shared_ptr parentActivity; std::string newStatus; std::string oldStatus; uint64_t timestamp; public: ActivityStatusEvent() : oid(0), timestamp(0) {} const std::string& getNewStatus() { return newStatus; } void setNewStatus(const std::string& newStatus) { this->newStatus = newStatus; } wfr_id_t getOid() { return oid; } const std::string& getOldStatus() { return oldStatus; } void setOldStatus(const std::string& oldStatus) { this->oldStatus = oldStatus; } const std::shared_ptr& getParentActivity() { return parentActivity; } void setParentActivity(const std::shared_ptr& parentActivity) { this->parentActivity = parentActivity; } uint64_t getTimestamp() { return timestamp; } void setTimestamp(uint64_t timestamp) { this->timestamp = timestamp; } }; #pragma db object pointer(std::shared_ptr) class ActivityInstance { friend class odb::access; private: #pragma db id auto uint32_t oid; wfr_id_t instid; wfr_id_t iterationID; std::vector> successors; std::vector> predecessors; #pragma db not_null std::shared_ptr baseActivity; #pragma db not_null std::shared_ptr parentWorkflow; std::shared_ptr parentInstance; #pragma db inverse(parentInstance) std::vector> statusEvents; public: ActivityInstance() : oid(0), instid(0), iterationID(0) {} ActivityInstance(wfr_id_t instid, wfr_id_t iterationID) : oid(0), instid(instid), iterationID(iterationID) {} wfr_id_t getInstid() { return instid; } void setInstid(wfr_id_t instid) { this->instid = instid; } wfr_id_t getIterationId() { return iterationID; } void setIterationId(wfr_id_t iterationId) { iterationID = iterationId; } wfr_id_t getOid() { return oid; } std::shared_ptr& getBaseActivity() { return baseActivity; } void setBaseActivity(std::shared_ptr& parentActivity) { this->baseActivity = parentActivity; } std::vector >& getPredecessors() { return predecessors; } std::vector >& getSuccessors() { return successors; } const std::shared_ptr& getParentInstance() const { return parentInstance; } void setParentInstance( const std::shared_ptr& parentInstance) { this->parentInstance = parentInstance; } std::shared_ptr& getParentWorkflow() { return parentWorkflow; } void setParentWorkflow(std::shared_ptr& parentWorkflow) { this->parentWorkflow = parentWorkflow; } }; #pragma db object pointer(std::shared_ptr) class ActivityInstanceStatusEvent { friend class odb::access; private: #pragma db id auto uint32_t oid; #pragma db not_null std::shared_ptr parentInstance; std::string newStatus; std::string oldStatus; uint64_t timestamp; public: ActivityInstanceStatusEvent() : oid(0), timestamp(0) {} const std::string& getNewStatus() { return newStatus; } void setNewStatus(const std::string& newStatus) { this->newStatus = newStatus; } wfr_id_t getOid() { return oid; } const std::string& getOldStatus() { return oldStatus; } void setOldStatus(const std::string& oldStatus) { this->oldStatus = oldStatus; } const std::shared_ptr& getParentInstance() { return parentInstance; } void setParentInstance(const std::shared_ptr& parentActivity) { this->parentInstance = parentActivity; } uint64_t getTimestamp() { return timestamp; } void setTimestamp(uint64_t timestamp) { this->timestamp = timestamp; } }; #pragma db object pointer(std::shared_ptr) class DeviceInstanceStatusEvent { friend class odb::access; private: #pragma db id auto uint32_t oid; std::shared_ptr parentWorkflow; std::string deviceType; wfr_id_t deviceID; wfr_id_t deviceSubID; std::string newStatus; std::string oldStatus; uint64_t timestamp; std::shared_ptr executedInstance; wfr_id_t executedImplID; wfr_size_t deviceSlotCount; public: DeviceInstanceStatusEvent() : oid(0), deviceID(0), deviceSubID(0), timestamp(0), executedImplID(0), deviceSlotCount(0) {} const std::string& getNewStatus() { return newStatus; } void setNewStatus(const std::string& newStatus) { this->newStatus = newStatus; } wfr_id_t getOid() { return oid; } const std::string& getOldStatus() { return oldStatus; } void setOldStatus(const std::string& oldStatus) { this->oldStatus = oldStatus; } const std::shared_ptr& getParentWorkflow() { return parentWorkflow; } void setParentWorkflow(const std::shared_ptr& parentWorkflow) { this->parentWorkflow = parentWorkflow; } uint64_t getTimestamp() { return timestamp; } void setTimestamp(uint64_t timestamp) { this->timestamp = timestamp; } wfr_id_t getDeviceId() { return deviceID; } wfr_id_t getDeviceSubId() { return deviceSubID; } void setDeviceId(wfr_id_t deviceId) { deviceID = deviceId; } void setDeviceSubId(wfr_id_t deviceSubId) { deviceSubID = deviceSubId; } wfr_size_t getDeviceSlotCount() { return deviceSlotCount; } void setDeviceSlotCount(wfr_size_t deviceSlotCount) { this->deviceSlotCount = deviceSlotCount; } const std::string& getDeviceType() { return deviceType; } void setDeviceType(const std::string& deviceType) { this->deviceType = deviceType; } wfr_id_t getExecutedImplId() { return executedImplID; } void setExecutedImplId(wfr_id_t executedImplId) { executedImplID = executedImplId; } const std::shared_ptr& getExecutedInstance() { return executedInstance; } void setExecutedInstance(const std::shared_ptr& executedInstance) { this->executedInstance = executedInstance; } }; #pragma db object pointer(std::shared_ptr) class ComponentStatusEvent { friend class odb::access; private: #pragma db id auto uint32_t oid; std::shared_ptr workflow; std::string componentType; std::string newStatus; std::string oldStatus; uint64_t timestamp; public: ComponentStatusEvent() : oid(0), timestamp(0) {} std::string& getComponentType() { return componentType; } void setComponentType(const std::string& componentType) { this->componentType = componentType; } std::string& getNewStatus() { return newStatus; } void setNewStatus(const std::string& newStatus) { this->newStatus = newStatus; } wfr_id_t getOid() { return oid; } std::string& getOldStatus() { return oldStatus; } void setOldStatus(const std::string& oldStatus) { this->oldStatus = oldStatus; } uint64_t getTimestamp() { return timestamp; } void setTimestamp(uint64_t timestamp) { this->timestamp = timestamp; } std::shared_ptr& getWorkflow() { return workflow; } void setWorkflow(const std::shared_ptr& workflow) { this->workflow = workflow; } }; } /* namespace odbmodel */ } /* namespace eventsystem */ } /* namespace wfr */ #endif /* SIMPLEDBMODEL_H_ */