mistserver/src/controller/controller_storage.cpp
2014-01-22 08:54:47 +01:00

48 lines
1.4 KiB
C++

#include <iostream>
#include <fstream>
#include <mist/timing.h>
#include "controller_storage.h"
///\brief Holds everything unique to the controller.
namespace Controller {
JSON::Value Storage; ///< Global storage of data.
///\brief Store and print a log message.
///\param kind The type of message.
///\param message The message to be logged.
void Log(std::string kind, std::string message){
//if last log message equals this one, do not log.
if (Storage["log"].size() > 0){
JSON::ArrIter it = Storage["log"].ArrEnd();
int repeats = Storage["log"].size();
if (repeats > 10){repeats = 10;}
do{
it--;
if (( *it)[2] == message && ( *it)[1] == kind){
return;
}
repeats--;
}while (repeats > 0);
}
JSON::Value m;
m.append(Util::epoch());
m.append(kind);
m.append(message);
Storage["log"].append(m);
Storage["log"].shrink(100); //limit to 100 log messages
std::cout << "(" << Util::epoch() << ") [" << kind << "] " << message << std::endl;
}
///\brief Write contents to Filename
///\param Filename The full path of the file to write to.
///\param contents The data to be written to the file.
bool WriteFile(std::string Filename, std::string contents){
std::ofstream File;
File.open(Filename.c_str());
File << contents << std::endl;
File.close();
return File.good();
}
}