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 33 34 35 36 37 38 39
|
// This file is part of The New Aspell
// Copyright (C) 2001 by Kevin Atkinson under the GNU LGPL license
// version 2.0 or 2.1. You should have received a copy of the LGPL
// license along with this library if you did not you can find
// it at http://www.gnu.org/.
#ifndef ASPELL_STRING_ENUMERATION__HPP
#define ASPELL_STRING_ENUMERATION__HPP
#include "parm_string.hpp"
#include "type_id.hpp"
#include "char_vector.hpp"
namespace acommon {
class StringEnumeration;
class Convert;
class StringEnumeration {
public:
typedef const char * Value;
virtual bool at_end() const = 0;
virtual const char * next() = 0;
int ref_count_;
TypeId type_id_;
unsigned int type_id() { return type_id_.num; }
int copyable_;
int copyable() { return copyable_; }
virtual StringEnumeration * clone() const = 0;
virtual void assign(const StringEnumeration * other) = 0;
CharVector temp_str;
Convert * from_internal_;
StringEnumeration() : ref_count_(0), copyable_(2), from_internal_(0) {}
virtual ~StringEnumeration() {}
};
}
#endif /* ASPELL_STRING_ENUMERATION__HPP */
|