From 24bdf39e6c21ab846f6c86803761d78a094e05c0 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 26 May 2022 20:31:26 +0300 Subject: Added files from project 1 (mirror) --- .../Project 1/src/Models/Event.h | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Year 1/Object-oriented Programming/Project 1/src/Models/Event.h (limited to 'Year 1/Object-oriented Programming/Project 1/src/Models/Event.h') diff --git a/Year 1/Object-oriented Programming/Project 1/src/Models/Event.h b/Year 1/Object-oriented Programming/Project 1/src/Models/Event.h new file mode 100644 index 0000000..1162b8f --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 1/src/Models/Event.h @@ -0,0 +1,63 @@ +#ifndef HEADER_MODEL_EVENT +#define HEADER_MODEL_EVENT + +/*! \file Event.h + * \brief Stores the declaration of class Event + */ + +#include "../Generic/List/OrderedList.hpp" +#include "../Generic/Date/Date.h" +#include "../Generic/String/String.h" +#include "Hall.h" +#include "Ticket.h" +#include "Reservation.h" +#include +#include + +/*! \brief Stores an event's hall, name, date, bought tickets and reservations + */ +class Event { + Hall hall; + String name; + Date date; + OrderedList tickets; + OrderedList reservations; + +public: + //! Calls default constructors on data + Event(); + //! Copies given hall and sets name and date + Event(const Hall& hall, String name, Date date); + + //! Returns constant reference Hall in which event will be held + const Hall& get_hall() const; + //! Returns constant reference to name of event + const String& get_name() const; + //! Returns constant reference to date on which event will be held + const Date& get_date() const; + + //! Returns reference to bought tickets + OrderedList& get_tickets(); + //! Returns constant reference to bought tickets + const OrderedList& get_tickets() const; + //! Returns reference to reservations + OrderedList& get_reservations(); + //! Returns constant reference to reservations + const OrderedList& get_reservations() const; + + //! Reads Event from stream + void read(std::istream& istr); + //! Writes Event to stream + void write(std::ostream& ostr); + //! Compares two events + int compare(const Event& other); +}; + +//! Reads Event from stream with >> operator +std::istream& operator>>(std::istream& istr, Event& event); +//! Configures how Event should be shown, when written to stream with << operator +void configureEventInsertionOp(unsigned setting); +//! Writes Event to stream with << operator +std::ostream& operator<<(std::ostream& ostr, const Event& event); + +#endif -- cgit v1.3.1-23-gd82d