This commit is contained in:
Weining Lu 2019-05-16 15:18:59 +08:00
parent 0a69fd0056
commit be0a7413a1

View File

@ -2,6 +2,70 @@ Introduction
============== ==============
This project aims to demonstrate wasm app management and programming model of WAMR. This project aims to demonstrate wasm app management and programming model of WAMR.
Directory structure
------------------------------
<pre>
simple/
├── build.sh
├── CMakeLists.txt
├── README.md
├── src
│   ├── ext-lib-export.c
│   ├── iwasm_main.c
│   └── main.c
└── wasm-apps
├── event_publisher
│   └── event_publisher.c
├── event_subscriber
│   └── event_subscriber.c
├── request_handler
│   └── request_handler.c
├── request_sender
│   └── request_sender.c
├── sensor
│   └── sensor.c
└── timer
└── timer.c
</pre>
- build.sh
The script to build all binaries.
- CMakeLists.txt
CMake file used to build the simple application.
- README.md
The file you are reading currently.
- src/ext-lib-export.c
This file is used to export native APIs. See README.md in WAMR root directory for detail.
- src/iwam_main.c
This file should be implemented by platform integrator in which a host interface is provided to interact with WAMR app-manager. See `{WAMR_ROOT}/core/app-mgr/app-mgr-shared/app-manager-export.h` for the definition of the host interface.
```
/* Interfaces of host communication */
typedef struct host_interface {
host_init_func init;
host_send_fun send;
host_destroy_fun destroy;
} host_interface;
```
```
host_interface interface = {
.init = host_init,
.send = host_send,
.destroy = host_destroy
};
```
This interface is passed to app-manager by calling
```
app_manager_startup(&interface);
```
The `host_init_func` is automatically called when app-manager startup. And `host_send_fun` will be called by app-manager to send data to host anytime.
>Note: Currently since app-manager will keep running and never exit, `host_destroy_fun` has no chance to get executed. So you can leave this API implementation empty.
- src/main.c
The main file.
- wasm-apps
Source files of sample wasm applications.
Build all binaries Build all binaries
============== ==============
Execute the build.sh script then all binaries including wasm application files would be generated in 'out' directory. Execute the build.sh script then all binaries including wasm application files would be generated in 'out' directory.