|
Classes |
class | AsciiFile |
class | Container |
class | Dasd |
class | DerefIterator |
class | Disk |
class | Dm |
class | DmCo |
struct | FstabEntry |
struct | FstabChange |
class | EtcFstab |
class | EtcRaidtab |
class | Evms |
class | EvmsObject |
class | EvmsDataObject |
class | EvmsContainerObject |
class | EvmsVolumeObject |
class | EvmsAccess |
struct | EvmsObj |
struct | EvmsVol |
struct | EvmsCont |
struct | EvmsTree |
class | EvmsCo |
class | FilterIterator |
class | IterPair |
class | MakeCondIterPair |
class | ListListIterator |
class | Loop |
class | LoopCo |
class | LvmLv |
class | LvmVg |
class | Md |
class | MdCo |
class | OutputProcessor |
class | ScrollBarHandler |
class | Mke2fsScrollbar |
class | ReiserScrollbar |
class | DasdfmtScrollbar |
class | Partition |
class | PeContainer |
class | ProcMounts |
class | ProcPart |
class | Regex |
class | Region |
struct | DiskData |
class | CheckType |
class | CastCheckIterator |
class | Storage |
struct | FsCapabilities |
struct | ContainerInfo |
struct | DiskInfo |
struct | LvmVgInfo |
struct | EvmsCoInfo |
struct | VolumeInfo |
struct | PartitionInfo |
struct | LvmLvInfo |
struct | EvmsInfo |
struct | MdInfo |
struct | LoopInfo |
struct | DmInfo |
class | StorageInterface |
| Abstract class defining the interface for libstorage. More...
|
class | CheckFnc |
class | ContainerIter |
class | ContainerDerIter |
class | CastIterator |
class | CheckerIterator |
struct | cont_less |
struct | contOrder |
struct | commitAction |
struct | usedBy |
struct | match_string |
struct | find_begin |
struct | find_any |
class | SystemCmd |
class | Volume |
Typedefs |
typedef void(* | CallbackProgressBar )(const string &id, unsigned cur, unsigned max) |
typedef void(* | CallbackShowInstallInfo )(const string &id) |
typedef void(* | CallbackInfoPopup )(const string &text) |
typedef bool(* | CallbackYesNoPopup )(const string &text) |
Enumerations |
enum | ObjType {
EVMS_UNKNOWN,
EVMS_DISK,
EVMS_SEGMENT,
EVMS_REGION,
EVMS_PLUGIN,
EVMS_CONTAINER,
EVMS_VOLUME,
EVMS_OBJ
} |
enum | FsType {
FSUNKNOWN,
REISERFS,
EXT2,
EXT3,
VFAT,
XFS,
JFS,
HFS,
NTFS,
SWAP,
FSNONE
} |
enum | PartitionType { PRIMARY,
EXTENDED,
LOGICAL,
PTYPE_ANY
} |
enum | MountByType {
MOUNTBY_DEVICE,
MOUNTBY_UUID,
MOUNTBY_LABEL,
MOUNTBY_ID,
MOUNTBY_PATH
} |
enum | EncryptType {
ENC_NONE,
ENC_TWOFISH,
ENC_TWOFISH_OLD,
ENC_TWOFISH256_OLD,
ENC_UNKNOWN
} |
enum | MdType {
RAID_UNK,
RAID0,
RAID1,
RAID5,
RAID6,
RAID10,
MULTIPATH
} |
enum | MdParity {
PAR_NONE,
LEFT_ASYMMETRIC,
LEFT_SYMMETRIC,
RIGHT_ASYMMETRIC,
RIGHT_SYMMETRIC
} |
enum | UsedByType {
UB_NONE,
UB_LVM,
UB_MD,
UB_EVMS,
UB_DM
} |
enum | CType {
CUNKNOWN,
DISK,
MD,
LOOP,
LVM,
DM,
EVMS
} |
enum | ErrorCodes {
DISK_PARTITION_OVERLAPS_EXISTING = -1000,
DISK_PARTITION_EXCEEDS_DISK = -1001,
DISK_CREATE_PARTITION_EXT_ONLY_ONCE = -1002,
DISK_CREATE_PARTITION_EXT_IMPOSSIBLE = -1003,
DISK_PARTITION_NO_FREE_NUMBER = -1004,
DISK_CREATE_PARTITION_INVALID_VOLUME = -1005,
DISK_CREATE_PARTITION_INVALID_TYPE = -1006,
DISK_CREATE_PARTITION_PARTED_FAILED = -1007,
DISK_PARTITION_NOT_FOUND = -1008,
DISK_CREATE_PARTITION_LOGICAL_NO_EXT = -1009,
DISK_PARTITION_LOGICAL_OUTSIDE_EXT = -1010,
DISK_SET_TYPE_INVALID_VOLUME = -1011,
DISK_SET_TYPE_PARTED_FAILED = -1012,
DISK_SET_LABEL_PARTED_FAILED = -1013,
DISK_REMOVE_PARTITION_PARTED_FAILED = -1014,
DISK_REMOVE_PARTITION_INVALID_VOLUME = -1015,
DISK_REMOVE_PARTITION_LIST_ERASE = -1016,
DISK_DESTROY_TABLE_INVALID_LABEL = -1017,
DISK_PARTITION_ZERO_SIZE = -1018,
DISK_CHANGE_READONLY = -1019,
DISK_RESIZE_PARTITION_INVALID_VOLUME = -1020,
DISK_RESIZE_PARTITION_PARTED_FAILED = -1021,
DISK_RESIZE_NO_SPACE = -1022,
DISK_CHECK_RESIZE_INVALID_VOLUME = -1023,
DISK_REMOVE_PARTITION_CREATE_NOT_FOUND = -1024,
DISK_COMMIT_NOTHING_TODO = -1025,
DISK_CREATE_PARTITION_NO_SPACE = -1026,
DISK_REMOVE_USED_BY = -1027,
DISK_INIT_NOT_POSSIBLE = -1028,
STORAGE_DISK_NOT_FOUND = -2000,
STORAGE_VOLUME_NOT_FOUND = -2001,
STORAGE_REMOVE_PARTITION_INVALID_CONTAINER = -2002,
STORAGE_CHANGE_PARTITION_ID_INVALID_CONTAINER = -2003,
STORAGE_CHANGE_READONLY = -2004,
STORAGE_DISK_USED_BY = -2005,
STORAGE_LVM_VG_EXISTS = -2006,
STORAGE_LVM_VG_NOT_FOUND = -2007,
STORAGE_LVM_INVALID_DEVICE = -2008,
STORAGE_CONTAINER_NOT_FOUND = -2009,
STORAGE_VG_INVALID_NAME = -2010,
STORAGE_REMOVE_USED_VOLUME = -2011,
STORAGE_REMOVE_USING_UNKNOWN_TYPE = -2012,
STORAGE_NOT_YET_IMPLEMENTED = -2013,
STORAGE_MD_INVALID_NAME = -2014,
STORAGE_MD_NOT_FOUND = -2015,
STORAGE_MEMORY_EXHAUSTED = -2016,
STORAGE_LOOP_NOT_FOUND = -2017,
STORAGE_CREATED_LOOP_NOT_FOUND = -2018,
STORAGE_EVMS_INVALID_NAME = -2019,
STORAGE_EVMS_CO_EXISTS = -2020,
STORAGE_EVMS_CO_NOT_FOUND = -2021,
STORAGE_EVMS_INVALID_DEVICE = -2022,
STORAGE_CHANGE_AREA_INVALID_CONTAINER = -2023,
STORAGE_BACKUP_STATE_NOT_FOUND = -2024,
STORAGE_INVALID_FSTAB_VALUE = -2025,
STORAGE_NO_FSTAB_PTR = -2026,
STORAGE_DEVICE_NODE_NOT_FOUND = -2027,
VOLUME_COMMIT_UNKNOWN_STAGE = -3000,
VOLUME_FSTAB_EMPTY_MOUNT = -3001,
VOLUME_UMOUNT_FAILED = -3002,
VOLUME_MOUNT_FAILED = -3003,
VOLUME_FORMAT_DD_FAILED = -3004,
VOLUME_FORMAT_UNKNOWN_FS = -3005,
VOLUME_FORMAT_FS_UNDETECTED = -3006,
VOLUME_FORMAT_FS_TOO_SMALL = -3007,
VOLUME_FORMAT_FAILED = -3008,
VOLUME_TUNE2FS_FAILED = -3009,
VOLUME_MKLABEL_FS_UNABLE = -3010,
VOLUME_MKLABEL_FAILED = -3011,
VOLUME_LOSETUP_NO_LOOP = -3012,
VOLUME_LOSETUP_FAILED = -3013,
VOLUME_CRYPT_NO_PWD = -3014,
VOLUME_CRYPT_PWD_TOO_SHORT = -3015,
VOLUME_CRYPT_NOT_DETECTED = -3016,
VOLUME_FORMAT_EXTENDED_UNSUPPORTED = -3017,
VOLUME_MOUNT_EXTENDED_UNSUPPORTED = -3018,
VOLUME_MOUNT_POINT_INVALID = -3019,
VOLUME_MOUNTBY_NOT_ENCRYPTED = -3020,
VOLUME_MOUNTBY_UNSUPPORTED_BY_FS = -3021,
VOLUME_LABEL_NOT_SUPPORTED = -3022,
VOLUME_LABEL_TOO_LONG = -3023,
VOLUME_LABEL_WHILE_MOUNTED = -3024,
VOLUME_RESIZE_UNSUPPORTED_BY_FS = -3025,
VOLUME_RESIZE_UNSUPPORTED_BY_CONTAINER = -3026,
VOLUME_RESIZE_FAILED = -3027,
VOLUME_ALREADY_IN_USE = -3028,
VOLUME_LOUNSETUP_FAILED = -3029,
VOLUME_DEVICE_NOT_PRESENT = -3030,
VOLUME_DEVICE_NOT_BLOCK = -3031,
VOLUME_MOUNTBY_UNSUPPORTED_BY_VOLUME = -3032,
LVM_CREATE_PV_FAILED = -4000,
LVM_PV_ALREADY_CONTAINED = -4001,
LVM_PV_DEVICE_UNKNOWN = -4002,
LVM_PV_DEVICE_USED = -4003,
LVM_VG_HAS_NONE_PV = -4004,
LVM_LV_INVALID_NAME = -4005,
LVM_LV_DUPLICATE_NAME = -4006,
LVM_LV_NO_SPACE = -4007,
LVM_LV_UNKNOWN_NAME = -4008,
LVM_LV_NOT_IN_LIST = -4009,
LVM_VG_CREATE_FAILED = -4010,
LVM_VG_EXTEND_FAILED = -4011,
LVM_VG_REDUCE_FAILED = -4012,
LVM_VG_REMOVE_FAILED = -4013,
LVM_LV_CREATE_FAILED = -4014,
LVM_LV_REMOVE_FAILED = -4015,
LVM_LV_RESIZE_FAILED = -4016,
LVM_PV_STILL_ADDED = -4017,
LVM_PV_REMOVE_NOT_FOUND = -4018,
LVM_CREATE_LV_INVALID_VOLUME = -4019,
LVM_REMOVE_LV_INVALID_VOLUME = -4020,
LVM_RESIZE_LV_INVALID_VOLUME = -4021,
LVM_CHANGE_READONLY = -4022,
LVM_CHECK_RESIZE_INVALID_VOLUME = -4023,
LVM_COMMIT_NOTHING_TODO = -4024,
LVM_LV_REMOVE_USED_BY = -4025,
LVM_LV_ALREADY_ON_DISK = -4026,
LVM_LV_NO_STRIPE_SIZE = -4027,
FSTAB_ENTRY_NOT_FOUND = -5000,
FSTAB_CHANGE_PREFIX_IMPOSSIBLE = -5001,
FSTAB_REMOVE_ENTRY_NOT_FOUND = -5002,
FSTAB_UPDATE_ENTRY_NOT_FOUND = -5003,
FSTAB_ADD_ENTRY_FOUND = -5004,
MD_CHANGE_READONLY = -6000,
MD_DUPLICATE_NUMBER = -6001,
MD_TOO_FEW_DEVICES = -6002,
MD_DEVICE_UNKNOWN = -6003,
MD_DEVICE_USED = -6004,
MD_CREATE_INVALID_VOLUME = -6005,
MD_REMOVE_FAILED = -6006,
MD_NOT_IN_LIST = -6007,
MD_CREATE_FAILED = -6008,
MD_UNKNOWN_NUMBER = -6009,
MD_REMOVE_USED_BY = -6010,
MD_NUMBER_TOO_LARGE = -6011,
MD_REMOVE_INVALID_VOLUME = -6012,
MD_REMOVE_CREATE_NOT_FOUND = -6013,
MD_NO_RESIZE_ON_DISK = -6014,
MD_ADD_DUPLICATE = -6015,
MD_REMOVE_NONEXISTENT = -6016,
MD_NO_CHANGE_ON_DISK = -6017,
MD_NO_CREATE_UNKNOWN = -6018,
LOOP_CHANGE_READONLY = -7000,
LOOP_DUPLICATE_FILE = -7001,
LOOP_UNKNOWN_FILE = -7002,
LOOP_REMOVE_USED_BY = -7003,
LOOP_FILE_CREATE_FAILED = -7004,
LOOP_CREATE_INVALID_VOLUME = -7005,
LOOP_REMOVE_FILE_FAILED = -7006,
LOOP_REMOVE_INVALID_VOLUME = -7007,
LOOP_NOT_IN_LIST = -7008,
LOOP_REMOVE_CREATE_NOT_FOUND = -7009,
LOOP_MODIFY_EXISTING = -7010,
EVMS_HELPER_UNKNOWN_CMD = -8000,
EVMS_UNSUPPORTED_CONTAINER_TYPE = -8001,
EVMS_MALLOC_FAILED = -8002,
EVMS_INVALID_PHYSICAL_VOLUME = -8003,
EVMS_PHYSICAL_VOLUME_IN_USE = -8004,
EVMS_PLUGIN_NOT_FOUND = -8005,
EVMS_CREATE_CONTAINER_FAILED = -8006,
EVMS_RESIZE_VOLUME_NOT_FOUND = -8007,
EVMS_RESIZE_CONTAINER_NOT_FOUND = -8008,
EVMS_RESIZE_EXPAND_FAILED = -8009,
EVMS_RESIZE_SHRINK_FAILED = -8010,
EVMS_COMMIT_FAILED = -8011,
EVMS_CREATE_VOLUME_FREESPACE_NOT_FOUND = -8012,
EVMS_CREATE_VOLUME_FAILED = -8013,
EVMS_CREATE_COMPAT_VOLUME_FAILED = -8014,
EVMS_SEGMENT_NOT_FOUND = -8015,
EVMS_REMOVE_VOLUME_NOT_FOUND = -8016,
EVMS_REMOVE_REGION_FAILED = -8017,
EVMS_CONTAINER_NOT_FOUND = -8018,
EVMS_CONTAINER_EXPAND_FAILED = -8019,
EVMS_CONTAINER_SHRINK_INVALID_SEGMENT = -8020,
EVMS_CONTAINER_SHRINK_FAILED = -8021,
EVMS_CONTAINER_REMOVE_FAILED = -8022,
EVMS_PV_ALREADY_CONTAINED = -8023,
EVMS_PV_DEVICE_UNKNOWN = -8024,
EVMS_PV_DEVICE_USED = -8025,
EVMS_CO_HAS_NONE_PV = -8026,
EVMS_LV_INVALID_NAME = -8027,
EVMS_LV_DUPLICATE_NAME = -8028,
EVMS_LV_NO_SPACE = -8029,
EVMS_LV_UNKNOWN_NAME = -8030,
EVMS_LV_NOT_IN_LIST = -8031,
EVMS_PV_STILL_ADDED = -8032,
EVMS_PV_REMOVE_NOT_FOUND = -8033,
EVMS_CREATE_LV_INVALID_VOLUME = -8034,
EVMS_REMOVE_LV_INVALID_VOLUME = -8035,
EVMS_RESIZE_LV_INVALID_VOLUME = -8036,
EVMS_CHANGE_READONLY = -8037,
EVMS_CHECK_RESIZE_INVALID_VOLUME = -8038,
EVMS_COMMIT_NOTHING_TODO = -8039,
EVMS_LV_REMOVE_USED_BY = -8040,
EVMS_COMMUNICATION_FAILED = -8041,
EVMS_LV_ALREADY_ON_DISK = -8042,
EVMS_LV_NO_STRIPE_SIZE = -8043,
EVMS_ACTIVATE_FAILED = -8044,
EVMS_CONTAINER_NOT_CREATED = -8045,
PEC_PE_SIZE_INVALID = -9000,
PEC_PV_NOT_FOUND = -9001,
PEC_REMOVE_PV_IN_USE = -9002,
PEC_REMOVE_PV_SIZE_NEEDED = -9003,
PEC_LV_NO_SPACE_STRIPED = -9004,
PEC_LV_NO_SPACE_SINGLE = -9005,
PEC_LV_PE_DEV_NOT_FOUND = -9006,
DM_CHANGE_READONLY = -10000,
DM_UNKNOWN_TABLE = -10001,
DM_REMOVE_USED_BY = -10002,
DM_REMOVE_CREATE_NOT_FOUND = -10003,
DM_REMOVE_INVALID_VOLUME = -10004,
DM_REMOVE_FAILED = -10005,
DM_NOT_IN_LIST = -10006,
DASD_NOT_POSSIBLE = -11000,
DASD_FDASD_FAILED = -11001,
DASD_DASDFMT_FAILED = -11002,
CONTAINER_INTERNAL_ERROR = -99000,
CONTAINER_INVALID_VIRTUAL_CALL = -99001
} |
enum | CommitStage { DECREASE,
INCREASE,
FORMAT,
MOUNT
} |
Functions |
string | dupDash (const string &s) |
bool | searchFile (AsciiFile &File_Cr, string Pat_Cv, string &Line_Cr) |
bool | searchFile (AsciiFile &File_Cr, string Pat_Cv, string &Line_Cr, int &LineNr_ir) |
void | timeMark (const char *const Text_pcv, bool PrintDiff_bi) |
void | createPath (string Path_Cv) |
bool | getUid (string Name_Cv, unsigned &Uid_ir) |
bool | getGid (string Name_Cv, unsigned &Gid_ir) |
int | getGid (string Name_Cv) |
int | getUid (string Name_Cv) |
bool | checkDir (string Path_Cv) |
bool | checkSymlink (string Path_Cv) |
bool | checkBlockDevice (string Path_Cv) |
bool | checkNormalFile (string Path_Cv) |
string | kbyteToHumanString (unsigned long long sizeK) |
string | extractNthWord (int Num_iv, string Line_Cv, bool GetRest_bi) |
list< string > | splitString (const string &s, const string &delChars, bool multipleDelim, bool skipEmpty, const string "es) |
string | mergeString (const list< string > &l, const string &del) |
map< string, string > | makeMap (const list< string > &l, const string &delim, const string &removeSur) |
void | putNthWord (int Num_iv, string Word_Cv, string &Line_Cr) |
void | removeLastIf (string &Text_Cr, char Char_cv) |
string | normalizeDevice (const string &dev) |
void | normalizeDevice (string &dev) |
string | undevDevice (const string &dev) |
void | undevDevice (string &dev) |
void | delay (int Microsec_iv) |
void | removeSurrounding (char Delim_ci, string &Text_Cr) |
int | compareGt (string Lhs_Cv, string Rhs_Cv) |
bool | runningFromSystem () |
void | log_msg (unsigned level, const char *file, unsigned line, const char *func, const char *add_str, const char *format,...) |
int | createLogger (const string &component, const string &name, const string &logpath, const string &logfile) |
void | tolower (string &s) |
void | getFindMap (const char *path, map< string, string > &m, bool unique) |
void | getFindRevMap (const char *path, map< string, string > &ret) |
unsigned | getMajorDevices (const string &driver) |
string | mergeString (const std::list< string > &l, const string &del=" ") |
std::map< string, string > | makeMap (const std::list< string > &l, const string &delim="=", const string &removeSur=" \t\n") |
void | getFindMap (const char *path, std::map< string, string > &m, bool unique=true) |
void | getFindRevMap (const char *path, std::map< string, string > &m) |
string | sformat (const char *txt,...) |
const char * | _ (const char *msgid) |
const char * | _ (const char *msgid1, const char *msgid2, unsigned long int n) |
std::ostream & | operator<< (std::ostream &s, const Container &c) |
std::ostream & | operator<< (std::ostream &s, const Dasd &d) |
std::ostream & | operator<< (std::ostream &s, const Disk &d) |
std::ostream & | operator<< (std::ostream &s, const Dm &p) |
std::ostream & | operator<< (std::ostream &s, const DmCo &d) |
std::ostream & | operator<< (std::ostream &s, const FstabEntry &v) |
std::ostream & | operator<< (std::ostream &s, const FstabChange &v) |
std::ostream & | operator<< (std::ostream &s, const EtcRaidtab::entry &v) |
std::ostream & | operator<< (std::ostream &s, const Evms &p) |
ostream & | operator<< (ostream &str, const EvmsObject &obj) |
ostream & | operator<< (ostream &str, ObjType obj) |
ostream & | operator<< (ostream &str, const EvmsDataObject &obj) |
ostream & | operator<< (ostream &str, const EvmsContainerObject &obj) |
ostream & | operator<< (ostream &str, const EvmsVolumeObject &obj) |
ostream & | operator<< (ostream &str, const EvmsAccess &obj) |
std::ostream & | operator<< (std::ostream &Stream, const ObjType Obj) |
std::ostream & | operator<< (std::ostream &Stream, const EvmsAccess &Obj) |
std::ostream & | operator<< (std::ostream &Stream, const EvmsObject &Obj) |
std::ostream & | operator<< (std::ostream &Stream, const EvmsDataObject &Obj) |
std::ostream & | operator<< (std::ostream &Stream, const EvmsContainerObject &Obj) |
std::ostream & | operator<< (std::ostream &Stream, const EvmsVolumeObject &Obj) |
std::ostream & | operator<< (std::ostream &s, const EvmsObj &d) |
std::ostream & | operator<< (std::ostream &s, const EvmsVol &d) |
std::ostream & | operator<< (std::ostream &s, const EvmsCont::peinfo &d) |
std::ostream & | operator<< (std::ostream &s, const EvmsCont &d) |
std::ostream & | operator<< (std::ostream &s, const EvmsTree &d) |
std::ostream & | operator<< (std::ostream &s, const EvmsCo &d) |
template<class Container, class Iter> |
IterPair< Iter > | MakeIterPair (Container &c) |
std::ostream & | operator<< (std::ostream &s, const Loop &l) |
std::ostream & | operator<< (std::ostream &s, const LoopCo &d) |
std::ostream & | operator<< (std::ostream &s, const LvmLv &p) |
std::ostream & | operator<< (std::ostream &s, const LvmVg &d) |
std::ostream & | operator<< (std::ostream &s, const Md &m) |
std::ostream & | operator<< (std::ostream &s, const MdCo &d) |
std::ostream & | operator<< (std::ostream &s, const Partition &p) |
void | printDevList (std::ostream &s, const std::list< PeContainer::Pv > &l) |
std::ostream & | operator<< (std::ostream &s, const PeContainer &d) |
std::ostream & | operator<< (std::ostream &s, const PeContainer::Pv &v) |
std::ostream & | operator<< (std::ostream &s, const Region &p) |
std::istream & | operator>> (std::istream &s, Region &p) |
std::ostream & | operator<< (std::ostream &s, const storage::DiskData &d) |
void | initDefaultLogger () |
StorageInterface * | createDefaultStorageInterface () |
StorageInterface * | createStorageInterface (bool ronly, bool testmode, bool autodetect) |
void | destroyStorageInterface (StorageInterface *p) |
std::ostream & | operator<< (std::ostream &s, Storage &v) |
std::ostream & | operator<< (std::ostream &s, commitAction &a) |
template<class C> |
void | pointerIntoSortedList (std::list< C * > &l, C *e) |
template<class Num> |
string | decString (Num number) |
template<class Num> |
string | hexString (Num number) |
template<class Value> |
void | operator>> (const string &d, Value &v) |
template<class Value> |
std::ostream & | operator<< (std::ostream &s, const std::list< Value > &l) |
template<class Value> |
std::ostream & | operator<< (std::ostream &s, const std::deque< Value > &l) |
template<class F, class S> |
std::ostream & | operator<< (std::ostream &s, const std::pair< F, S > &p) |
template<class Key, class Value> |
std::ostream & | operator<< (std::ostream &s, const std::map< Key, Value > &m) |
template<class T, unsigned int sz> |
unsigned int | lengthof (T(&)[sz]) |
std::ostream & | operator<< (std::ostream &s, const usedBy &d) |
std::ostream & | operator<< (std::ostream &s, const Volume &v) |
Variables |
static blocxx::String | component = "libstorage(" + decString(getpid()) + ")" |
bool | system_cmd_testmode = false |
const string | app_ws = " \t\n" |
bool | system_cmd_testmode |
const string | app_ws |