Stride Reference Manual  - generated for commit 9643b11
DaysOffStandard.h
Go to the documentation of this file.
1 /*
2  * This is free software: you can redistribute it and/or modify it
3  * under the terms of the GNU General Public License as published by
4  * the Free Software Foundation, either version 3 of the License, or
5  * any later version.
6  * The software is distributed in the hope that it will be useful,
7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9  * GNU General Public License for more details.
10  * You should have received a copy of the GNU General Public License
11  * along with the software. If not, see <http://www.gnu.org/licenses/>.
12  *
13  * Copyright 2017, Kuylen E, Willem L, Broeckhove J
14  */
15 
21 #pragma once
22 
23 #include "calendar/Calendar.h"
25 
26 #include <memory>
27 
28 namespace stride {
29 
34 {
35 public:
37  explicit DaysOffStandard(std::shared_ptr<Calendar> cal) : m_calendar(std::move(cal)) {}
38 
40  bool IsWorkOff() override { return m_calendar->IsWeekend() || m_calendar->IsHoliday(); }
41 
43  bool IsSchoolOff() override
44  {
45  return m_calendar->IsWeekend() || m_calendar->IsHoliday() || m_calendar->IsSchoolHoliday();
46  }
47 
48 private:
49  std::shared_ptr<Calendar> m_calendar;
50 };
51 
52 } // namespace stride
std::shared_ptr< Calendar > m_calendar
Management of calendar.
Interface definition.
Interface for DaysOff classes.
bool IsSchoolOff() override
See DaysOffInterface.
STL namespace.
bool IsWorkOff() override
See DaysOffInterface.
DaysOffStandard(std::shared_ptr< Calendar > cal)
Initialize calendar.
Standard situation for days off from work and school.
Header file for the Calendar class.
Namespace for the simulator and related classes.
Definition: Calendar.cpp:28