This repository has been archived by the owner on May 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConverter.h
55 lines (50 loc) · 1.64 KB
/
Converter.h
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
48
49
50
51
52
53
54
55
#ifndef CONVERTER_H
#define CONVERTER_H
/**
* \file
* \brief Definicja klasy zarządzającej konwersją walut Converter.
*
* Plik ten jest częścią projektu currency_calc.
*/
#include "Enums.h"
#include "InputData.h"
#include "InputDataStream.h"
#include "InputDataFile.h"
#include "FXRate.h"
#include "OutputBuilder.h"
#include "OutputBuilderStream.h"
#include "OutputBuilderFile.h"
/**
* \brief Klasa zarządzająca konwersją walutową.
*
* Jest to główna klasa abstrakcji konwersji walutowej.\n\n
* Klasa ta:\n
* - pełni rolę fabryki, we wzorcu projektowym <b>factory method</b>, dla pobierania danych wejściowych;\n
* - wybiera algorytm, zgodnie ze wzorcem projektowym <b>strategy</b>, sposobu pobierania kursu dla danych walut;\n
* - pełni rolę dyrektora, we wzorcu projektowym <b>builder</b>, przy generowaniu danych wyjściowych.
*/
class Converter
{
private:
static InputData* input; ///< Dane wejściowe
static OutputBuilder* output; ///< Budowniczy danych wyjściowych
static FXRate* ex_rate; ///< Nasz kurs walutowy
public:
/**
* \brief Zwraca instancję obiektu.
*/
static Converter& get();
/**
* \brief Pobiera dane wejściowe.
*/
static int getInput(int location, const std::string& file);
/**
* \brief Pobiera kurs.
*/
static int getFXRate(FXRate* rate, const std::string& in_curr, const std::string& out_curr, const std::string& data);
/**
* \brief Generuje dane wyjściowe.
*/
static int setOutput(int location, int type, const std::string& file);
};
#endif // CONVERTER_H