EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
LoadProjectTask.hpp
Go to the documentation of this file.
1
7
8#ifndef ECHOMAP_LOADPROJECTTASK_HPP
9#define ECHOMAP_LOADPROJECTTASK_HPP
10
11#include <filesystem>
12
14#include "ITask.hpp"
15
16namespace echomap
17{
18
27class LoadProjectTask : public ITask
28{
29public:
36 explicit LoadProjectTask(
38 Worker* worker
39 );
40
41private:
50 WorkerResult execute_work() override;
51
61
66
67 Worker* worker;
68};
69
70} // namespace echomap
71
72#endif // ECHOMAP_LOADPROJECTTASK_HPP
Task description interface specification.
JSONDeserialiser specification.
LoadProjectTask(std::filesystem::path path, Worker *worker)
Create a new LoadProjectTask for a serialised Project.
std::filesystem::path project_file_path
The deserialiser takes just strings for paths, so we "downgrade" the typed path to a string.
WorkerResult execute_work() override
Loads, deserialises, constructs, and validates the serialised Project file at the provided path.
static JSONDeserialiser deserialiser
Shared instance of the deserialiser.
A Worker provides an encapsulated thread-safe despatch model for submitting work and reviewing result...
Definition Worker.hpp:45
The main EchoMap outermost namespace for all non-exported symbols.
JSONPartialDeserialiser JSONDeserialiser
Provides a JSONDeserialiser for the web, where PartialProject objects are required.
std::variant< ErrorResult, DFTResult, DownsampleResult, LoadProjectResult, LoadSignalFileResult > WorkerResult
Issued once an ITask has completed its Worker cycle.