1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_BUILD_FIBER_EXECUTION_CONTEXT_INCLUDED
 7 #define CMAJOR_BUILD_FIBER_EXECUTION_CONTEXT_INCLUDED
 8 #include <cmajor/build/ExecutionContext.hpp>
 9 
10 namespace cmajor { namespace build {
11 
12 class BuildServer;
13 class FiberConnection;
14 class Connection;
15 
16 class FiberExecutionContext public ExecutionContext
17 {
18 public:
19     FiberExecutionContext();
20     ~FiberExecutionContext();
21     BuildClient* GetClient() override { return client.get(); }
22     Connection* GetConnection() override;
23 private:
24     std::unique_ptr<FiberConnection> connection;
25     std::unique_ptr<BuildClient> client;
26     std::unique_ptr<BuildServer> server;
27 };
28 
29 } } // namespace cmajor::build
30 
31 #endif // CMAJOR_BUILD_FIBER_EXECUTION_CONTEXT_INCLUDED