#pragma once #include #include #include #include #include #include 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 = "<>"; 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 = "<>"; 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 = "<>"; 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 = "<>"; 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 = "<>"; 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 = "<>"; 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 = "<>"; 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 "<>"; } 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 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 */