1 // Copyright (C) 2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
13 #include <samples/slog.hpp>
17 * @brief A CsvDumper class provides functionality for dumping the values in CSV files
25 std::string generateFilename() {
26 std::stringstream filename;
27 filename << "dumpfile-";
28 filename << time(nullptr);
30 return filename.str();
35 * @brief A constructor. Disables dumping in case dump file cannot be created
36 * @param enabled - True if dumping is enabled by default.
37 * @param name - name of file to dump to. File won't be created if first parameter is false.
39 explicit CsvDumper(bool enabled = true, const std::string& name = "") : canDump(enabled) {
43 filename = (name == "" ? generateFilename() : name);
44 file.open(filename, std::ios::out);
46 slog::warn << "Cannot create dump file! Disabling dump." << slog::endl;
52 * @brief Sets a delimiter to use in csv file
53 * @param c - Delimiter char
56 void setDelimiter(char c) {
61 * @brief Overloads operator to organize streaming values to file. Does nothing if dumping is disabled
62 * Adds delimiter at the end of value provided
63 * @param add - value to add to dump
64 * @return reference to same object
67 CsvDumper& operator<<(const T& add) {
69 file << add << delimiter;
75 * @brief Finishes line in dump file. Does nothing if dumping is disabled
84 * @brief Gets information if dump is enabled.
85 * @return true if dump is enabled and file was successfully created
92 * @brief Gets name of a dump file
93 * @return name of a dump file
95 std::string getFilename() const {