-
Notifications
You must be signed in to change notification settings - Fork 0
/
Lecture.hpp
61 lines (40 loc) · 1.71 KB
/
Lecture.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef LECTURE
#define LECTURE
#include <string> //string
#include <vector> //vector
#include <unordered_map> //unordered_map
#include "json.hpp" //nlohmann::json
typedef std::vector<std::vector<bool>> AVAILABOOL;
/*
Describes a lecture : a course, teacher(s), and section(s)
*/
class Lecture{
//creates C++ Lecture object from json Lecture object
friend void from_json(const nlohmann::json&, Lecture&);
public:
const std::string& getId() const {return id;}
int getStrength() const {return strength;}
const std::string& getCourse() const {return course;}
const std::vector<std::string>& getTeachers() const {return teachers;}
const std::vector<std::string>& getSections() const {return sections;}
const AVAILABOOL& getAvailableSlots() const {return availableSlots;}
const std::vector<std::string>& getAvailableRooms() const {return availableRooms;}
void setAvailableSlots(AVAILABOOL availableSlots){this->availableSlots = availableSlots;}
void setAvailableRooms(std::vector<std::string> availableRooms){this->availableRooms = availableRooms;}
private:
std::string id;
int strength;
std::string course;
std::vector<std::string> teachers;
std::vector<std::string> sections;
AVAILABOOL availableSlots;
std::vector<std::string> availableRooms;
};
void from_json(const nlohmann::json& jlecture, Lecture& lecture) {
jlecture.at("id").get_to(lecture.id);
jlecture.at("strength").get_to(lecture.strength);
jlecture.at("courseId").get_to(lecture.course);
jlecture.at("teacherIds").get_to(lecture.teachers);
jlecture.at("sectionIds").get_to(lecture.sections);
}
#endif