ApplicationServices.hpp
1 #pragma once
2 #include <score/tools/FileWatch.hpp>
3 #include <score/tools/RecursiveWatch.hpp>
4 #include <score/tools/ThreadPool.hpp>
5 
6 #include <optional>
7 
8 namespace score
9 {
10 // These service have some dependency order - filewatch has to be deleted
11 // before threadpool for instance.
12 // Actual usage should be through the individual classes, not this.
13 // This way if e.g. the taskpool is never needed it will not be initialized.
14 struct SCORE_LIB_BASE_EXPORT ApplicationServices
15 {
16  std::optional<score::ThreadPool> threadpool;
17  std::optional<score::TaskPool> taskpool;
18  std::optional<score::FileWatch> filewatch;
19 };
20 
21 SCORE_LIB_BASE_EXPORT
22 ApplicationServices& AppServices() noexcept;
23 }
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: ApplicationServices.hpp:15