/src/aspell/common/string_enumeration.hpp
Line | Count | Source (jump to first uncovered line) |
1 | | // This file is part of The New Aspell |
2 | | // Copyright (C) 2001 by Kevin Atkinson under the GNU LGPL license |
3 | | // version 2.0 or 2.1. You should have received a copy of the LGPL |
4 | | // license along with this library if you did not you can find |
5 | | // it at http://www.gnu.org/. |
6 | | |
7 | | #ifndef ASPELL_STRING_ENUMERATION__HPP |
8 | | #define ASPELL_STRING_ENUMERATION__HPP |
9 | | |
10 | | #include "parm_string.hpp" |
11 | | #include "type_id.hpp" |
12 | | #include "char_vector.hpp" |
13 | | |
14 | | namespace acommon { |
15 | | |
16 | | class StringEnumeration; |
17 | | class Convert; |
18 | | |
19 | | class StringEnumeration { |
20 | | public: |
21 | | typedef const char * Value; |
22 | | virtual bool at_end() const = 0; |
23 | | virtual const char * next() = 0; |
24 | | int ref_count_; |
25 | | TypeId type_id_; |
26 | 0 | unsigned int type_id() { return type_id_.num; } |
27 | | int copyable_; |
28 | 0 | int copyable() { return copyable_; } |
29 | | virtual StringEnumeration * clone() const = 0; |
30 | | virtual void assign(const StringEnumeration * other) = 0; |
31 | | CharVector temp_str; |
32 | | Convert * from_internal_; |
33 | 82.8k | StringEnumeration() : ref_count_(0), copyable_(2), from_internal_(0) {} |
34 | 82.8k | virtual ~StringEnumeration() {} |
35 | | }; |
36 | | |
37 | | } |
38 | | |
39 | | #endif /* ASPELL_STRING_ENUMERATION__HPP */ |