8
8
*/
9
9
10
10
#pragma once
11
- #include " cpp-terminfo/Boolean .hpp"
12
- #include " cpp-terminfo/Integer .hpp"
13
- #include " cpp-terminfo/String .hpp"
11
+ #include " cpp-terminfo/BooleanId .hpp"
12
+ #include " cpp-terminfo/IntegerId .hpp"
13
+ #include " cpp-terminfo/StringId .hpp"
14
14
#include " cpp-terminfo/Type.hpp"
15
15
16
16
#include < cstdint>
@@ -23,29 +23,32 @@ namespace Terminfo
23
23
class Terminfo
24
24
{
25
25
public:
26
+ using BooleansContainer = std::set<BooleanId>;
27
+ using IntegersContainer = std::map<IntegerId, std::uint16_t >;
28
+ using StringsContainer = std::map<StringId, std::string>;
26
29
Terminfo () {}
27
- Terminfo (const Type& type) : m_type(type) {}
28
- Terminfo (const Type& type, const std::set< Boolean > & booleans, const std::map<Integer, std:: uint16_t > & integers, const std::map<String, std::string> & strings) : m_type(type), m_booleans(booleans), m_integers(integers), m_strings(strings) {}
29
- Type getType () const { return m_type; }
30
- void addBoolean (const Boolean & boolean ) { m_booleans.insert (boolean ); }
31
- void addInteger (const Integer& integer , const std::uint16_t & value) { m_integers[integer ] = {value}; }
32
- void addString (const String& string , const std::string& value) { m_strings[string ] = {value}; }
33
- void add (const Terminfo& rhs);
34
- void remove (const Boolean & boolean) { m_booleans.erase (boolean); }
35
- void remove (const Integer & integer) { m_integers.erase (integer); }
36
- void remove (const String & string) { m_strings.erase (string); }
37
- bool get (const Boolean & boolean) const { return m_booleans.find (boolean) != m_booleans.end (); }
38
- const std::uint16_t & get (const Integer & integer) const { return m_integers.at (integer); }
39
- const std::string& get (const String & string) const { return m_strings.at (string); }
40
- std::set< Boolean > getBooleans () const { return m_booleans; }
41
- std::map<Integer, std:: uint16_t > getIntegers () const { return m_integers; }
42
- std::map<String, std::string> getStrings () const { return m_strings; }
30
+ explicit Terminfo (const Type& type) : m_type(type) {}
31
+ Terminfo (const Type& type, const BooleansContainer & booleans, const IntegersContainer & integers, const StringsContainer & strings) : m_booleans(booleans), m_integers(integers), m_strings(strings), m_type(type ) {}
32
+ Type getType () const { return m_type; }
33
+ void add (const BooleanId& id ) { m_booleans.insert (id ); }
34
+ void add (const IntegerId& id , const std::uint16_t & value) { m_integers[id ] = {value}; }
35
+ void add (const StringId& id , const std::string& value) { m_strings[id ] = {value}; }
36
+ void add (const Terminfo& rhs);
37
+ void remove (const BooleanId & boolean) { m_booleans.erase (boolean); }
38
+ void remove (const IntegerId & integer) { m_integers.erase (integer); }
39
+ void remove (const StringId & string) { m_strings.erase (string); }
40
+ bool get (const BooleanId & boolean) const { return m_booleans.find (boolean) != m_booleans.end (); }
41
+ const std::uint16_t & get (const IntegerId & integer) const { return m_integers.at (integer); }
42
+ const std::string& get (const StringId & string) const { return m_strings.at (string); }
43
+ BooleansContainer getBooleans () const { return m_booleans; }
44
+ IntegersContainer getIntegers () const { return m_integers; }
45
+ StringsContainer getStrings () const { return m_strings; }
43
46
44
47
private:
45
- std::set< Boolean > m_booleans;
46
- std::map<Integer, std:: uint16_t > m_integers;
47
- std::map<String, std::string> m_strings;
48
- Type m_type;
48
+ BooleansContainer m_booleans;
49
+ IntegersContainer m_integers;
50
+ StringsContainer m_strings;
51
+ Type m_type;
49
52
};
50
53
51
54
} // namespace Terminfo
0 commit comments