269 lines
6.1 KiB
C++
269 lines
6.1 KiB
C++
|
|
#pragma once
|
|
|
|
#include <wfr/common/types/WfsTypes.h>
|
|
#include <wfr/common/types/WfrTypes.h>
|
|
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <string>
|
|
#include <sstream>
|
|
|
|
|
|
namespace wfr {
|
|
namespace print {
|
|
|
|
|
|
inline std::string toString(const wfs::WorkflowStatus& status) {
|
|
std::string retval;
|
|
switch (status) {
|
|
case wfs::WorkflowStatus::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::WorkflowStatus::Created:
|
|
retval = "Created";
|
|
break;
|
|
case wfs::WorkflowStatus::Initialized:
|
|
retval = "Initialized";
|
|
break;
|
|
case wfs::WorkflowStatus::Running:
|
|
retval = "Running";
|
|
break;
|
|
case wfs::WorkflowStatus::Finished:
|
|
retval = "Finished";
|
|
break;
|
|
case wfs::WorkflowStatus::Error:
|
|
retval = "Error";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Status>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
inline std::string toString(const wfs::ActivityStatus& status) {
|
|
std::string retval;
|
|
switch (status) {
|
|
case wfs::ActivityStatus::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::ActivityStatus::Created:
|
|
retval = "Created";
|
|
break;
|
|
case wfs::ActivityStatus::Initialized:
|
|
retval = "Initialized";
|
|
break;
|
|
case wfs::ActivityStatus::Running:
|
|
retval = "Running";
|
|
break;
|
|
case wfs::ActivityStatus::Finished:
|
|
retval = "Finished";
|
|
break;
|
|
case wfs::ActivityStatus::Error:
|
|
retval = "Error";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Status>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
inline std::string toString(const wfs::ActivityInstanceStatus& status) {
|
|
std::string retval;
|
|
switch (status) {
|
|
case wfs::ActivityInstanceStatus::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Created:
|
|
retval = "Created";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Initialized:
|
|
retval = "Initialized";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::WaitingForData:
|
|
retval = "WaitingForData";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::WaitingForDependency:
|
|
retval = "WaitingForDependency";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::ReadyForExecution:
|
|
retval = "ReadyForExecution";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Scheduled:
|
|
retval = "Scheduled";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Queued:
|
|
retval = "Queued";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::WaitingForFreeResources:
|
|
retval = "WaitingForFreeResources";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Running:
|
|
retval = "Running";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Error:
|
|
retval = "Error";
|
|
break;
|
|
case wfs::ActivityInstanceStatus::Finished:
|
|
retval = "Finished";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Status>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfs::ComputingResourceStatus& status) {
|
|
std::string retval;
|
|
switch (status) {
|
|
case wfs::ComputingResourceStatus::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Created:
|
|
retval = "Created";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Idle:
|
|
retval = "Idle";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Sleep:
|
|
retval = "Sleep";
|
|
break;
|
|
case wfs::ComputingResourceStatus::WokenUp:
|
|
retval = "WokenUp";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Busy:
|
|
retval = "Busy";
|
|
break;
|
|
case wfs::ComputingResourceStatus::ExecutingTask:
|
|
retval = "ExecutingTask";
|
|
break;
|
|
case wfs::ComputingResourceStatus::FinishedTask:
|
|
retval = "FinishedTask";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Shutdown:
|
|
retval = "Shutdown";
|
|
break;
|
|
case wfs::ComputingResourceStatus::Error:
|
|
retval = "Error";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Status>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfs::ActivityImplementationType& type) {
|
|
std::string retval;
|
|
switch (type) {
|
|
case wfs::ActivityImplementationType::PThread:
|
|
retval = "PThread";
|
|
break;
|
|
case wfs::ActivityImplementationType::OpenMP:
|
|
retval = "OpenMP";
|
|
break;
|
|
case wfs::ActivityImplementationType::OpenCL:
|
|
retval = "OpenCL";
|
|
break;
|
|
case wfs::ActivityImplementationType::CUDA:
|
|
retval = "CUDA";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Device>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfs::ComponentType& type) {
|
|
std::string retval;
|
|
switch (type) {
|
|
case wfs::ComponentType::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::ComponentType::Enactment:
|
|
retval = "Enactment";
|
|
break;
|
|
case wfs::ComponentType::Scheduler:
|
|
retval = "Scheduler";
|
|
break;
|
|
case wfs::ComponentType::ExecutionLayer:
|
|
retval = "ExecutionLayer";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown Type>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfs::ComponentStatus& state) {
|
|
std::string retval;
|
|
switch (state) {
|
|
case wfs::ComponentStatus::Unknown:
|
|
retval = "Unknown";
|
|
break;
|
|
case wfs::ComponentStatus::Idle:
|
|
retval = "Idle";
|
|
break;
|
|
case wfs::ComponentStatus::Busy:
|
|
retval = "Busy";
|
|
break;
|
|
case wfs::ComponentStatus::Finished:
|
|
retval = "Finished";
|
|
break;
|
|
case wfs::ComponentStatus::Error:
|
|
retval = "Error";
|
|
break;
|
|
default:
|
|
retval = "<<Unknown State>>";
|
|
break;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfs::ActivityType& type) {
|
|
switch (type) {
|
|
case wfs::ActivityType::Atomic:
|
|
return "Atomic";
|
|
case wfs::ActivityType::Conditional:
|
|
return "Conditional";
|
|
case wfs::ActivityType::Container:
|
|
return "Container";
|
|
case wfs::ActivityType::ForLoop:
|
|
return "ForLoop";
|
|
case wfs::ActivityType::WhileLoop:
|
|
return "WhileLoop";
|
|
case wfs::ActivityType::Unknown:
|
|
return "Unknown";
|
|
default:
|
|
break;
|
|
}
|
|
return "<<Unknown Type>>";
|
|
}
|
|
|
|
|
|
inline std::string toString(const wfr_timestamp_sc_t& timestamp) {
|
|
std::stringstream ss;
|
|
std::time_t time = std::chrono::system_clock::to_time_t(timestamp);
|
|
std::tm* tm_time = std::localtime(&time);
|
|
char temp[30];
|
|
std::strftime(temp, sizeof(temp), "%d.%m.%Y %H:%M:", tm_time);
|
|
ss << temp;
|
|
std::chrono::duration<double> msecs = timestamp - std::chrono::system_clock::from_time_t(time) + std::chrono::seconds(tm_time->tm_sec);
|
|
ss << std::fixed << std::setw(9) << std::setfill('0') << msecs.count();
|
|
return ss.str();
|
|
}
|
|
|
|
|
|
} /* namespace print */
|
|
} /* namespace wfr */
|