summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/wasm-c-api/samples/hello_oop.py
blob: 666f63cd8899788ec875e7085727122233576b59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python3
#
# Copyright (C) 2019 Intel Corporation.  All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
import ctypes
from wamr import *


def hello_callback():
    print("Calling back...")
    print("> Hello World!")


def main():
    print("Initializing...")
    engine = Engine()
    store = Store(engine)

    print("Loading binary...")
    print("Compiling module...")
    module = Module.from_file(engine, "./hello.wasm")

    print("Creating callback...")
    hello = Func(store, FuncType([], []), hello_callback)

    print("Instantiating module...")
    instance = Instance(store, module, [hello])

    print("Extracting export...")
    run = instance.exports(store)["run"]

    print("Calling export...")
    run(store)

    print("Shutting down...")
    print("Done.")


if __name__ == "__main__":
    main()