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"
8
9#include <string_view>
10
11namespace asmgrader {
12
14{
15public:
16 explicit Serializer(Sink& sink, VerbosityLevel verbosity)
17 : sink_{sink}
18 , verbosity_{verbosity} {}
19
20 virtual ~Serializer() = default;
21
22 virtual void on_student_begin(const StudentInfo& info) = 0;
23 virtual void on_student_end(const StudentInfo& info) = 0;
24 virtual void on_run_metadata(const RunMetadata& data) = 0;
25
26 virtual void on_test_begin(std::string_view test_name) = 0;
27
28 virtual void on_requirement_result(const RequirementResult& data) = 0;
29 virtual void on_test_result(const TestResult& data) = 0;
30 virtual void on_assignment_result(const AssignmentResult& data) = 0;
31
32 virtual void on_warning(std::string_view what) = 0;
33 virtual void on_error(std::string_view what) = 0;
34
35 virtual void finalize() = 0;
36
37protected:
38 // TODO: yes, this is bad practice. Will redesign later
41};
42
43} // namespace asmgrader
A trivially-movable, but non-copyable type.
Definition class_traits.hpp:14
Definition serializer.hpp:14
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
Serializer(Sink &sink, VerbosityLevel verbosity)
Definition serializer.hpp:16
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
VerbosityLevel verbosity_
Definition serializer.hpp:40
Sink & sink_
Definition serializer.hpp:39
Definition sink.hpp:8
Defines data classes to store result data for the current run session.
Definition asm_buffer.hpp:20
VerbosityLevel
See Description of Levels for an explaination of each of the levels. Max is just used as a sentinal f...
Definition verbosity.hpp:9
Definition grading_session.hpp:119
Definition grading_session.hpp:75
Definition grading_session.hpp:62
Definition grading_session.hpp:157
Definition grading_session.hpp:99