Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / Hall.h
blob: c567c7582883504a83c2d1350b2fd95bcdaa42eb (plain) (blame)
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
#ifndef HEADER_MODEL_HALL
#define HEADER_MODEL_HALL

/*! \file Hall.h
 *  \brief Stores the declaration of class Hall
 */

#include <istream>
#include <ostream>

/*! \brief Each hall contains a number, rows and seats per row
 */
class Hall {
	int number;
	unsigned rows;
	unsigned seatsPerRow;

public:
	//! Sets values to 0
	Hall();
	//! Sets values, except number, to 0
	Hall(int number);
	//! Sets values
	Hall(int number, unsigned rows, unsigned seatsPerRow);

	//! Returns a Hall's number
	int get_number() const;
	//! Returns a Hall's row count
	unsigned get_rows() const;
	//! Return a Hall's seats per row count
	unsigned get_seatsPerRow() const;

	//! Reads Hall from stream
	void read(std::istream& istr);
	//! Writes Hall to steam
	void write(std::ostream& ostr) const;
	//! Compare two Halls
	int compare(const Hall& other) const;

};

//! Reads Hall from stream with >> operator
std::istream& operator>>(std::istream& istr, Hall& hall);
//! Writes Hall to stream with << operator
std::ostream& operator<<(std::ostream& ostr, const Hall& hall);

#endif