Skip to content

File basic_formatter.h

File List > benchmark > exporter > basic_formatter.h

Go to the documentation of this file

#pragma once

#include "../reporter/result.h"
#include "column_width_tracker.h"
#include "formatter.h"
#include "workbook.h"

namespace Argos {

class BasicFormatter : public ExcelFormatter {
public:
  void Fill(lxw_workbook *workbook, const BenchmarkResult &result) override;

private:
  constexpr static int COL_NAME = 0;
  constexpr static int COL_ITERATIONS = 1;
  constexpr static int COL_CPU_TIME = 2;
  constexpr static int COL_WALL_TIME = 3;
  constexpr static int COL_METRICS = 4;

  lxw_format *createNumFormat(lxw_workbook *workbook);
  lxw_format *createDateFormat(lxw_workbook *workbook);

  void measureMetadata(const BenchmarkResult &result,
                       ColumnWidthTracker &tracker);
  void measureTableHeaders(const BenchmarkResult &result,
                           ColumnWidthTracker &tracker);
  void measureTableData(const BenchmarkResult &result,
                        ColumnWidthTracker &tracker);

  void writeMetadata(lxw_worksheet *ws, const BenchmarkResult &result, int &row,
                     lxw_format *num_fmt, lxw_format *date_fmt);
  void writeTableHeaders(lxw_worksheet *ws, const BenchmarkResult &result,
                         int row);
  void writeTableData(lxw_worksheet *ws, const BenchmarkResult &result,
                      int &row, lxw_format *num_fmt);
};

} // namespace Argos