22#if defined(_WIN32) && !defined(__MINGW32__)
24#define strcasecmp _stricmp
25#define strncasecmp _strnicmp
35 template <
class EXCEPTION>
void handle_error(
const std::ostringstream &message)
37 throw EXCEPTION((message).str());
35 template <
class EXCEPTION>
void handle_error(
const std::ostringstream &message) {
…}
45 template <
class ForwardIt,
class T>
46 ForwardIt
bound_search(ForwardIt first, ForwardIt last,
const T &value)
48 first = std::lower_bound(first, last, value);
49 if (!(first == last) && !(value < *first))
46 ForwardIt
bound_search(ForwardIt first, ForwardIt last,
const T &value) {
…}
55 template <
class ForwardIt,
class T,
class Compare>
56 ForwardIt
bound_search(ForwardIt first, ForwardIt last,
const T &value, Compare comp)
58 first = std::lower_bound(first, last, value, comp);
59 if (!(first == last) && !(comp(value, *first)))
56 ForwardIt
bound_search(ForwardIt first, ForwardIt last,
const T &value, Compare comp) {
…}
67 auto start_it = inpt.begin();
68 auto end_it = inpt.rbegin();
69 while (std::isspace(*start_it))
71 while (std::isspace(*end_it))
73 return std::string(start_it, end_it.base());
76 inline std::vector<std::string>
get_tokens(
const std::string &str,
77 const std::string &separators)
79 std::vector<std::string> tokens;
80 auto first = std::begin(str);
81 while (first != std::end(str)) {
83 std::find_first_of(first, std::end(str), std::begin(separators), std::end(separators));
84 if (first != second) {
86 tokens.emplace_back(token);
88 if (second == std::end(str)) {
91 first = std::next(second);
76 inline std::vector<std::string>
get_tokens(
const std::string &str, {
…}
98 std::transform(str.begin(), str.end(), str.begin(), ::toupper);
103 std::transform(str.begin(), str.end(), str.begin(), ::tolower);
108 for (
char const &c : str) {
109 if (std::isdigit(c) == 0)
117 std::set<T> dataAsSet;
119 for (
const T &data : dataAsVector) {
120 dataAsSet.insert(data);
127 const std::string &prefix)
129 const unsigned prefixLength = prefix.length();
131 if (name.length() < prefixLength + 1)
132 return std::make_pair(0,
false);
134 const std::string namePrefix = name.substr(0, prefixLength);
135 const std::string nameSuffix = name.substr(prefixLength);
137 if (strcasecmp(namePrefix.c_str(), prefix.c_str()) != 0)
138 return std::make_pair(0,
false);
141 std::istringstream nameSuffixStream(nameSuffix);
142 nameSuffixStream >> id;
143 if (nameSuffixStream.fail()) {
144 return std::make_pair(0,
false);
146 return std::make_pair(
id,
true);
Definition Iotm_TextMeshAdjacencyGraph.h:39
void handle_error(const std::ostringstream &message)
Definition Iotm_TextMeshFuncs.h:35
bool is_positive_number(const std::string &str)
Definition Iotm_TextMeshFuncs.h:106
ForwardIt bound_search(ForwardIt first, ForwardIt last, const T &value)
Definition Iotm_TextMeshFuncs.h:46
void convert_to_uppercase(std::string &str)
Definition Iotm_TextMeshFuncs.h:96
void convert_to_lowercase(std::string &str)
Definition Iotm_TextMeshFuncs.h:101
std::vector< std::string > get_tokens(const std::string &str, const std::string &separators)
Definition Iotm_TextMeshFuncs.h:76
void default_error_handler(const std::ostringstream &message)
Definition Iotm_TextMeshFuncs.h:40
std::set< T > transform_to_set(const std::vector< T > &dataAsVector)
Definition Iotm_TextMeshFuncs.h:115
std::pair< unsigned, bool > get_id_from_part_name(const std::string &name, const std::string &prefix)
Definition Iotm_TextMeshFuncs.h:126
std::string strip_whitespace(const std::string &inpt)
Definition Iotm_TextMeshFuncs.h:65
A namespace for the textmesh database format.
Definition Iotm_DatabaseIO.C:95