#ifndef CONFIGURATION_H
#define CONFIGURATION_H

#include <string>

using namespace std;

struct Configuration
{
    string locale;
    string vendor;
    string orientation;
    string density;
    string touchscreen;
    string keyboard;
    string navigation;
    string screenSize;

    // Compare two configurations
    int Compare(const Configuration& that) const;

    inline bool operator<(const Configuration& that) const { return Compare(that) < 0; }
    inline bool operator<=(const Configuration& that) const { return Compare(that) <= 0; }
    inline bool operator==(const Configuration& that) const { return Compare(that) == 0; }
    inline bool operator!=(const Configuration& that) const { return Compare(that) != 0; }
    inline bool operator>=(const Configuration& that) const { return Compare(that) >= 0; }
    inline bool operator>(const Configuration& that) const { return Compare(that) > 0; }

    // Parse a directory name, like "values-en-rUS".  Return the first segment in resType.
    bool ParseDiectoryName(const string& dir, string* resType);

    string ToString() const;
};

bool split_locale(const string& in, string* language, string* region);


#endif // CONFIGURATION_H