
#define  LATITUDE           "33.55"
#define  LONGITUDE          "-117.8"
#define  MIN_TIME_BETWEEN   120 // (Seconds) Update no faster than ever 2 minutes.

class  WeatherData
  {
  public:
    string      summary;    // eg, "Mostly Cloudy"
    int         high;
    int         low;
    int         percip[4];  // 0% - 100%
    string      message[2]; // Contains Upper and Lowercase text.

  private:
    long        lastTime; // The last time we updated the data in seconds.
    string      xmlPage;  // The raw XLM page
    size_t      xmlOffset;// Byte offset into xmlPage
    bool        dataOK;   // Set to "false" when token is not found.

  public:
    // Constructor
    WeatherData();

    // Methods
    bool  ensureUpToDate(); // Call this often to keep data up to date.

  private:
    bool    parsePage();
    void    skipTo( string  token );
    string  getUpTo( string  token );

  }