#include "HistorieServer.h"
#ifdef WIN32
#include <main.h>
#endif
#include <Zeit.h>
#include <iostream>
#include <fstream>
#include <Globals.h>

#ifdef WIN32
int KSGStart Framework::Start( Startparam p )
{
#else
int main()
{
    Framework::initFramework();
#endif
	Zeit *z = getZeit();
	Text *pfad = new Text( "../log/historie/" );
	pfad->append( z->getZeit( "y-m-d h-i-s.log" ) );
	z->release();
	DateiPfadErstellen( pfad->getThis() );
	std::ofstream file;
	file.open( pfad->getText() );
	std::streambuf* sbuf = std::cout.rdbuf();
	std::cout.rdbuf( file.rdbuf() );
	pfad->release();

	std::cout << "HS: Startet...\n";
	std::cout << "HS: Lese init Datei ../data/hsInit.ini ...\n";
	InitDatei *dat = new InitDatei( "../data/hsInit.ini" );
	if( !dat->laden() )
	{
		std::cout << "HS: error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
		dat->release();
		exit( 1 );
	}

	HistorieServer *hServer = new HistorieServer( dat );

	std::cout << "HS: Der Admin Server läuft. Startforgang beendet.\n";
	hServer->runn();

	hServer->ende();
	hServer->release();
	dat->speichern();
	dat->release();
	std::cout << "HS: Der Server ist heruntergefahren.\n";
	file.close();
	std::cout.rdbuf( sbuf );
#ifndef WIN32
    Framework::releaseFramework();
#endif
	return 0;
}