File: SAMKeywordValuePairImpl.hpp

package info (click to toggle)
pbseqlib 5.3.1%2Bdfsg-2.1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 7,136 kB
  • sloc: cpp: 77,246; python: 570; makefile: 312; sh: 111; ansic: 9
file content (32 lines) | stat: -rw-r--r-- 833 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
template <typename T>
void StoreValue(std::string &valueStr, T &value)
{
    std::stringstream strm(valueStr);
    if (!(strm >> value)) {
        std::cout << "Error parsing " << valueStr << std::endl;
        std::exit(EXIT_FAILURE);
    }
}

template <typename T_Value>
bool KeywordValuePair<T_Value>::Parse(std::string &kvPair, const char *key, T_Value &result)
{
    std::string kvKey, kvValue;
    SplitSAMKeyValuePair(kvPair, kvKey, kvValue);
    if (kvKey != key) {
        return false;
    } else {
        std::stringstream strm(kvValue);
        if (!(kvValue >> result)) {
            return false;
        } else {
            return true;
        }
    }
}

template <typename T_Value>
bool KeywordValuePair<T_Value>::Store(std::string &valueStr, T_Value &value)
{
    return (std::stringstream(valueStr) >> value);
}