diff --git a/common/include/villas/common.h b/common/include/villas/common.h index 48abb2012..791a4dc2a 100644 --- a/common/include/villas/common.h +++ b/common/include/villas/common.h @@ -50,6 +50,9 @@ enum state { */ typedef int (*dtor_cb_t)(void *); +/** Convert state enum to human readable string. */ +const char * state_print(enum state s); + #ifdef __cplusplus } #endif diff --git a/common/lib/CMakeLists.txt b/common/lib/CMakeLists.txt index d343cc657..93e135d52 100644 --- a/common/lib/CMakeLists.txt +++ b/common/lib/CMakeLists.txt @@ -46,6 +46,7 @@ add_library(villas-common SHARED cpuset.cpp terminal.cpp version.cpp + common.c ) execute_process( diff --git a/common/lib/common.c b/common/lib/common.c new file mode 100644 index 000000000..31b88d73b --- /dev/null +++ b/common/lib/common.c @@ -0,0 +1,70 @@ + +/** Common code. + * + * @author Steffen Vogel + * @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC + * @license GNU General Public License (version 3) + * + * VILLASnode + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + *********************************************************************************/ + +#include + +#include + +const char * state_print(enum state s) +{ + switch (s) { + case STATE_DESTROYED: + return "destroyed"; + break; + + case STATE_INITIALIZED: + return "initialized"; + break; + + case STATE_PARSED: + return "parsed"; + break; + + case STATE_CHECKED: + return "checked"; + break; + + case STATE_STARTED: + return "running"; + break; + + case STATE_STOPPED: + return "stopped"; + break; + + case STATE_PENDING_CONNECT: + return "pending-connect"; + break; + + case STATE_CONNECTED: + return "connected"; + break; + + case STATE_PAUSED: + return "paused"; + break; + + default: + return NULL; + } +}