#ifndef VALUES_H
#define VALUES_H
#include "Configuration.h"
#include "XMLHandler.h"
#include <string>
using namespace std;
enum {
CURRENT_VERSION,
OLD_VERSION
};
struct StringResource
{
StringResource();
StringResource(const SourcePos& pos, const string& file, const Configuration& config,
const string& id, int index, XMLNode* value,
int version, const string& versionString, const string& comment = "");
StringResource(const StringResource& that);
// Compare two configurations
int Compare(const StringResource& that) const;
inline bool operator<(const StringResource& that) const { return Compare(that) < 0; }
inline bool operator<=(const StringResource& that) const { return Compare(that) <= 0; }
inline bool operator==(const StringResource& that) const { return Compare(that) == 0; }
inline bool operator!=(const StringResource& that) const { return Compare(that) != 0; }
inline bool operator>=(const StringResource& that) const { return Compare(that) >= 0; }
inline bool operator>(const StringResource& that) const { return Compare(that) > 0; }
string TypedID() const;
static bool ParseTypedID(const string& typed, string* id, int* index);
SourcePos pos;
string file;
Configuration config;
string id;
int index;
XMLNode* value;
int version;
string versionString;
string comment;
};
#endif // VALUES_H