1
#pragma once
2

            
3
#include "envoy/common/pure.h"
4
#include "envoy/config/typed_config.h"
5

            
6
#include "absl/strings/string_view.h"
7
#include "include/proxy-wasm/wasm_vm.h"
8

            
9
namespace Envoy {
10
namespace Extensions {
11
namespace Common {
12
namespace Wasm {
13

            
14
using WasmVmPtr = std::unique_ptr<proxy_wasm::WasmVm>;
15

            
16
class WasmRuntimeFactory : public Config::UntypedFactory {
17
public:
18
1
  ~WasmRuntimeFactory() override = default;
19
  virtual WasmVmPtr createWasmVm() PURE;
20

            
21
288
  std::string category() const override { return "envoy.wasm.runtime"; }
22
};
23

            
24
} // namespace Wasm
25
} // namespace Common
26
} // namespace Extensions
27
} // namespace Envoy