Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / task1 / Bar / Bar.cpp
blob: 02358012aa7d5205d50068e64593c6afbc617780 (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
#include "Bar.h"

void Bar::addDrink(const char* name, int ml)
{
	drinks.enqueue(Drink(name, ml));
}
void Bar::addAlocoholDrink(const char* name, int ml, int alcohol)
{
	alcoholDrinks.enqueue(AlcoholDrink(name, ml, alcohol));
}

Drink Bar::getDrink()
{
	Drink d = drinks.dequeue();
	incrementStatistics(d);
	return d;
}
AlcoholDrink Bar::getAcloholDrink()
{
	AlcoholDrink d = alcoholDrinks.dequeue();
	incrementStatistics(d, true);
	return d;
}

void Bar::incrementStatistics(const Drink& dr, bool isAlcoholDrink)
{
	stats.mlSold += dr.getMl();
	stats.allDrinksSold++;

	if (isAlcoholDrink)
		stats.alcoholDrinksSold++;
}

size_t Bar::getMlSold() const
{
	return stats.mlSold;
}
size_t Bar::getAllDrinksSold() const
{
	return stats.allDrinksSold;
}
size_t Bar::getAlcoholDrinksSold() const
{
	return stats.alcoholDrinksSold;
}