EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
LoadProjectResult.hpp
Go to the documentation of this file.
1
7
8#ifndef ECHOMAP_LOADPROJECTRESULT_HPP
9#define ECHOMAP_LOADPROJECTRESULT_HPP
10
11#include <memory>
12
13namespace echomap
14{
15
16#ifdef __EMSCRIPTEN__
17class PartialProject;
18#else
19class Project;
20#endif // __EMSCRIPTEN__
21
25class LoadProjectResult
26{
27public:
28#ifdef __EMSCRIPTEN__
29 using ProjectT = PartialProject;
30#else
31 using ProjectT = Project;
32#endif // __EMSCRIPTEN__
33
34 explicit LoadProjectResult(std::unique_ptr<ProjectT> loaded_project);
35 ~LoadProjectResult() noexcept;
36
37 LoadProjectResult(const LoadProjectResult&) = delete;
38 LoadProjectResult& operator=(const LoadProjectResult&) = delete;
39
40 LoadProjectResult(LoadProjectResult&&) noexcept;
41 LoadProjectResult& operator=(LoadProjectResult&&) noexcept;
42
43 [[nodiscard]] std::unique_ptr<ProjectT> take_project() && noexcept;
44 [[nodiscard]] const ProjectT * observe_project() const noexcept;
45
46private:
47 std::unique_ptr<ProjectT> loaded_project;
48};
49
50} // namespace echomap
51
52#endif // ECHOMAP_LOADPROJECTRESULT_HPP
A Project with semantics for expressing an incomplete set of owned Signal objects.
The main EchoMap outermost namespace for all non-exported symbols.