/** * @RDE_HEADER@ * Project Defines * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include namespace IDL { enum class PartitionType { Any, // '*' Global, // 'ex_0' Exercise, // 'ex_N' AllExercises, // 'ex_*' Replay, // 'srp_N' }; inline std::string toStdString(PartitionType pt) { switch (pt) { case PartitionType::Any: return "Any"; case PartitionType::Global: return "Global"; case PartitionType::Exercise: return "Exercise"; case PartitionType::AllExercises: return "AllExercises"; case PartitionType::Replay: return "Replay"; } return std::string("invalid:") + std::to_string(static_cast(pt)); } inline std::ostream& operator <<(std::ostream &o, PartitionType pt) { switch (pt) { case PartitionType::Any: case PartitionType::Global: case PartitionType::Exercise: case PartitionType::AllExercises: case PartitionType::Replay: return o << std::string("PartitionType::") + toStdString(pt); default: return o << std::to_string(static_cast(pt)); } } /** * return a string for an exercise partition * --> exercisePartitionPrefix() + std::to_string(exerciseId) * when exercise id is < 0, exercisePartitionPrefix() + '*' is returned */ inline std::string exercisePartition(int exerciseId) { if (exerciseId < 0) return { "ex_*" }; return std::string("ex_") + std::to_string(exerciseId); } /** * return a string for an replay partition * --> replayPartitionPrefix() + std::to_string(partitionId) * when partitionId id is < 0, replayPartitionPrefix() + '*' is returned */ inline std::string replayPartition(int partitionId) { if (partitionId < 0) return { "srp_*" }; return std::string("srp_") + std::to_string(partitionId); } } // Namespace IDL