/ inc / DatabaseController.h
DatabaseController.h
 1  /**
 2   * @file DatabaseController.h
 3   * @author Rene Ceska xceska06 (xceska06@stud.fit.vutbr.cz)
 4   * @brief Controller for database csv file
 5   * @date 2023-11-19
 6   */
 7  #ifndef DATABASECONTROLLER_H
 8  #define DATABASECONTROLLER_H
 9  #include "inc/DatabaseObject.h"
10  #include <fstream>
11  #include <iostream>
12  #include <sstream>
13  #include <string>
14  #include <vector>
15  
16  /**
17   * @brief class for loading and parsing database file
18   *
19   */
20  class DatabaseController {
21  private:
22    std::ifstream file;
23    std::vector<unsigned char> sanitaze(std::vector<unsigned char> input);
24  
25  public:
26    /**
27     * @brief loads next row from database file
28     *
29     * @param err  1 if EOF, 0 if success
30     * @return DatabaseObject
31     */
32    DatabaseObject loadNextRow(int *err);
33  
34    /**
35     * @brief loads all rows from database file
36     *
37     * @return std::vector<DatabaseObject>
38     */
39    std::vector<DatabaseObject> loadAllRows();
40  
41    /**
42     * @brief Construct a new Database Controller object
43     *
44     * @param fileName path to database csv file
45     */
46    DatabaseController(std::string fileName);
47    ~DatabaseController();
48  };
49  
50  #endif