Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / task1 / Bar / Bar.h
blob: 06e7d925dc4add1f00e434188fb4d5d8079a1860 (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
#pragma once
#include <iostream>
#include "../Drinks/AlcoholDrink.h"
#include "../Queue/Queue.hpp"



class Bar
{
	struct Statistics
	{
		size_t mlSold = 0;
		size_t allDrinksSold = 0;
		size_t alcoholDrinksSold = 0;
	};

private:
	Queue<Drink> drinks;
	Queue<AlcoholDrink> alcoholDrinks;

	Statistics stats;

	void incrementStatistics(const Drink& dr, bool isAlcoholDrink = false);

public:

	void addDrink(const char* name, int ml);
	void addAlocoholDrink(const char* name, int ml, int alcohol);

	Drink getDrink();
	AlcoholDrink getAcloholDrink();

	size_t getMlSold() const;
	size_t getAllDrinksSold() const;
	size_t getAlcoholDrinksSold() const;
};