/src/WasmEdge/include/host/wasi/wasimodule.h
Line | Count | Source |
1 | | // SPDX-License-Identifier: Apache-2.0 |
2 | | // SPDX-FileCopyrightText: 2019-2024 Second State INC |
3 | | |
4 | | #pragma once |
5 | | |
6 | | #include "host/wasi/environ.h" |
7 | | #include "runtime/instance/module.h" |
8 | | |
9 | | namespace WasmEdge { |
10 | | namespace Host { |
11 | | |
12 | | class WasiModule : public Runtime::Instance::ModuleInstance { |
13 | | public: |
14 | | WasiModule(); |
15 | | |
16 | 0 | __wasi_exitcode_t getExitCode() const noexcept { return Env.getExitCode(); } |
17 | | |
18 | | void init(Span<const std::string> Dirs, const std::string &ProgramName, |
19 | | Span<const std::string> Args, |
20 | 0 | Span<const std::string> Envs) noexcept { |
21 | 0 | Env.init(Dirs, ProgramName, Args, Envs); |
22 | 0 | } |
23 | | |
24 | 0 | WASI::WasiExpect<uint64_t> getNativeHandler(__wasi_fd_t Fd) const noexcept { |
25 | 0 | return Env.getNativeHandler(Fd); |
26 | 0 | } |
27 | | |
28 | | WASI::WasiExpect<void> |
29 | | initWithFds(Span<const std::string> Dirs, std::string ProgramName, |
30 | | Span<const std::string> Args, Span<const std::string> Envs, |
31 | 0 | int32_t StdInFd, int32_t StdOutFd, int32_t StdErrFd) { |
32 | 0 | return Env.initWithFds(Dirs, ProgramName, Args, Envs, StdInFd, StdOutFd, |
33 | 0 | StdErrFd); |
34 | 0 | } |
35 | | |
36 | 0 | const WASI::Environ *getEnv() const noexcept { return &Env; } |
37 | | |
38 | | private: |
39 | | WASI::Environ Env; |
40 | | }; |
41 | | |
42 | | } // namespace Host |
43 | | } // namespace WasmEdge |