1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_BUILD_EXECUTION_CONTEXT_INCLUDED
 7 #define CMAJOR_BUILD_EXECUTION_CONTEXT_INCLUDED
 8 #include <cmajor/build/BuildApi.hpp>
 9 #include <memory>
10 #include <string>
11 
12 namespace cmajor { namespace build {
13 
14 class Log;
15 class BuildClient;
16 class Connection;
17 
18 class ExecutionContext 
19 {
20 public:
21     ExecutionContext();
22     virtual ~ExecutionContext();
23     Log* GetLog() const { return log.get(); }
24     virtual BuildClient* GetClient() { return nullptr; }
25     virtual void ExitServer() {}
26     virtual Connection* GetConnection() { return nullptr; }
27 private:
28     std::unique_ptr<Log> log;
29 };
30 
31 } } // namespace cmajor::build
32 
33 #endif // CMAJOR_BUILD_EXECUTION_CONTEXT_INCLUDED