AsmGrader 0.0.0
Loading...
Searching...
No Matches
serializer.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "grading_session.hpp"
5#include "output/sink.hpp"
7
8#include <string_view>
9
10namespace asmgrader {
11
13{
14public:
16 : sink_{sink}
17 , verbosity_{verbosity} {}
18
19 virtual ~Serializer() = default;
20
21 virtual void on_student_begin(const StudentInfo& info) = 0;
22 virtual void on_student_end(const StudentInfo& info) = 0;
23 virtual void on_run_metadata(const RunMetadata& data) = 0;
24
25 virtual void on_test_begin(std::string_view test_name) = 0;
26
27 virtual void on_requirement_result(const RequirementResult& data) = 0;
28 virtual void on_test_result(const TestResult& data) = 0;
29 virtual void on_assignment_result(const AssignmentResult& data) = 0;
30
31 virtual void on_warning(std::string_view what) = 0;
32 virtual void on_error(std::string_view what) = 0;
33
34 virtual void finalize() = 0;
35
36protected:
37 // TODO: yes, this is bad practice. Will redesign later
40};
41
42} // namespace asmgrader
A trivially-movable, but non-copyable type.
Definition class_traits.hpp:14
Definition serializer.hpp:13
virtual void on_student_end(const StudentInfo &info)=0
virtual void on_test_result(const TestResult &data)=0
virtual void on_student_begin(const StudentInfo &info)=0
virtual void on_assignment_result(const AssignmentResult &data)=0
virtual ~Serializer()=default
virtual void on_test_begin(std::string_view test_name)=0
virtual void on_warning(std::string_view what)=0
virtual void on_error(std::string_view what)=0
virtual void on_run_metadata(const RunMetadata &data)=0
virtual void on_requirement_result(const RequirementResult &data)=0
virtual void finalize()=0
ProgramOptions::VerbosityLevel verbosity_
Definition serializer.hpp:39
Serializer(Sink &sink, ProgramOptions::VerbosityLevel verbosity)
Definition serializer.hpp:15
Sink & sink_
Definition serializer.hpp:38
Definition sink.hpp:8
Defines data classes to store result data for the current run session.
Definition asm_buffer.hpp:19
Definition grading_session.hpp:113
VerbosityLevel
See Description of Levels for an explaination of each of the levels. Max is just used as a sentinal f...
Definition program_options.hpp:37
Definition grading_session.hpp:72
Definition grading_session.hpp:59
Definition grading_session.hpp:151
Definition grading_session.hpp:93