1#ifndef CONFIGURATION_H
2#define CONFIGURATION_H
3
4#include <string>
5
6using namespace std;
7
8struct Configuration
9{
10    string locale;
11    string vendor;
12    string orientation;
13    string density;
14    string touchscreen;
15    string keyboard;
16    string navigation;
17    string screenSize;
18
19    // Compare two configurations
20    int Compare(const Configuration& that) const;
21
22    inline bool operator<(const Configuration& that) const { return Compare(that) < 0; }
23    inline bool operator<=(const Configuration& that) const { return Compare(that) <= 0; }
24    inline bool operator==(const Configuration& that) const { return Compare(that) == 0; }
25    inline bool operator!=(const Configuration& that) const { return Compare(that) != 0; }
26    inline bool operator>=(const Configuration& that) const { return Compare(that) >= 0; }
27    inline bool operator>(const Configuration& that) const { return Compare(that) > 0; }
28
29    // Parse a directory name, like "values-en-rUS".  Return the first segment in resType.
30    bool ParseDiectoryName(const string& dir, string* resType);
31
32    string ToString() const;
33};
34
35bool split_locale(const string& in, string* language, string* region);
36
37
38#endif // CONFIGURATION_H
39