Tijl Goens
/
EpaperdisplayII
tempcommit 13/05
Shed.cpp
- Committer:
- tijl
- Date:
- 2019-05-15
- Revision:
- 2:048e163245b7
- Parent:
- 1:63664175e603
File content as of revision 2:048e163245b7:
#include "mbed.h" #include "Shed.h" #include "Datetime.h" using namespace std; Shed::Shed(string json) { /* Voorbeeld json input " "id":"7", "lokaal":"2.85", "start":"2019-03-22 15:45:00", "einde":"2019-03-28 18:45:00", "prof":"J. Lannoo", "klasgroep":"1e Bachelor ME", "vak":"Sterkteleer", "comments":"Extra lokaal 4.20 via video" " */ string start_str = ""; string einde_str = ""; int param = 0; bool startCmd = false; bool endCmd = false; bool startParam = false; bool endParam = false; for(int i = 0; i < json.length(); i++) { char c = json.at(i); if(c == '"') { //Eerste keer is er nog geen startCmd, vanaf dan is deze altijd true //als dan de endParam true is, is het de volgende cmd eigenlijk dus alles herinitialiseren if(!startCmd || endParam) { endCmd = false; startParam = false; endParam = false; startCmd = true; param++; } else if(!endCmd) { endCmd = true; } else if(!startParam) { startParam = true; } else if(!endParam) { endParam = true; } } else { if(startParam && !endParam) { //Waarde aan het lezen switch(param) { case 1: { //id //Not needed } break; case 2: { //lokaal this->lokaal += c; } break; case 3: { //start start_str += c; } break; case 4: { //einde einde_str += c; } break; case 5: { //prof this->prof += c; } break; case 6: { //klasgroep this->klasgroep += c; } break; case 7: { //vak this->vak += c; } break; case 8: { //comments this->comments += c; } break; default: { //Error } } }/* else if(startCmd && !endCmd) { //Commando aan het lezen //Not needed }*/ } } //Save start & einde as Datetime this->start = new Datetime(start_str); this->einde = new Datetime(einde_str); } Shed::~Shed() { //strings are freed automatically //Needed for datetime (found on: https://stackoverflow.com/a/677661) //but this freezes the mbed without errors, so don't? //delete this->start; //delete this->einde; } string Shed::getLokaal() { return lokaal; } Datetime* Shed::getStart() { return start; } Datetime* Shed::getEinde() { return einde; } string Shed::getProf() { return prof; } string Shed::getKlasgroep() { return klasgroep; } string Shed::getVak() { return vak; } string Shed::getComments() { return comments; } //Er mag hier geen static voor staan als je een pointer wil gebruiken als return. Er staat wel een static voor in de header hiermee weet de main genoeg vector<Shed>* Shed::getShedVector(vector<string> jsons) { vector<Shed> sheds; for(int i = 0; i < jsons.size(); i++) { sheds.push_back(Shed(jsons[i])); } return &sheds; }