//: C04:DataLogger.cpp {O}
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
// Implementace třídy MerenyBod.
#include "DataLogger.h"
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

ostream& operator<<(ostream& os, const Souradnice& c) {
  return os << c.stupne << '*' << c.min << '\''
            << c.sec << '"';
}

string Souradnice::toString() const {
  ostringstream os;
  os << *this;
  return os.str();
}

ostream& operator<<(ostream& os, const MerenyBod& d) {
  os.setf(ios::fixed, ios::floatfield);
  char fillc = os.fill('0'); // vlevo doplnit'0'
  tm* tdata = localtime(&d.timestamp);
  os << setw(2) << tdata->tm_mon + 1 << '\\'
     << setw(2) << tdata->tm_mday << '\\'
     << setw(2) << tdata->tm_year+1900 << ' '
     << setw(2) << tdata->tm_hour << ':'
     << setw(2) << tdata->tm_min << ':'
     << setw(2) << tdata->tm_sec;
  os.fill(' '); // vlevo doplnit ' '
  streamsize prec = os.precision(4);
  os << " Sirka:"    << setw(9) << d.sirka.toString()
     << ", Delka:"  << setw(9) << d.delka.toString()
     << ", hloubka:" << setw(9) << d.hloubka
     << ", teplota:"  << setw(9) << d.teplota;
  os.fill(fillc);
  os.precision(prec);
  return os;
} ///:~
