support app framework base library in assemblyscript (#164)
This commit is contained in:
36
assembly-script/samples/event_publisher.ts
Normal file
36
assembly-script/samples/event_publisher.ts
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
// The entry file of your WebAssembly module.
|
||||
import * as console from "../wamr_app_lib/console"
|
||||
import * as timer from "../wamr_app_lib/timer"
|
||||
import * as request from "../wamr_app_lib/request"
|
||||
|
||||
function publish_overheat_event(): void {
|
||||
var payload = String.UTF8.encode("warning: temperature is over high");
|
||||
request.publish_event("alert/overheat", 0, payload, payload.byteLength);
|
||||
}
|
||||
|
||||
export function on_init() : void {
|
||||
timer.setInterval(publish_overheat_event, 2000);
|
||||
}
|
||||
|
||||
export function on_destroy() : void {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Function below are requred by wamr runtime, don't remove or modify them */
|
||||
export function _on_timer_callback(on_timer_id: i32): void {
|
||||
timer.on_timer_callback(on_timer_id);
|
||||
}
|
||||
|
||||
export function _on_request(buffer_offset: i32, size: i32): void {
|
||||
request.on_request(buffer_offset, size);
|
||||
}
|
||||
|
||||
export function _on_response(buffer_offset : i32, size: i32): void {
|
||||
request.on_response(buffer_offset, size);
|
||||
}
|
||||
36
assembly-script/samples/event_subscriber.ts
Normal file
36
assembly-script/samples/event_subscriber.ts
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
// The entry file of your WebAssembly module.
|
||||
import * as console from "../wamr_app_lib/console"
|
||||
import * as timer from "../wamr_app_lib/timer"
|
||||
import * as request from "../wamr_app_lib/request"
|
||||
|
||||
export function on_init() : void {
|
||||
request.subscribe_event("alert/overheat", (req) => {
|
||||
console.log("### user over heat event handler called:");
|
||||
|
||||
console.log("");
|
||||
console.log(" " + String.UTF8.decode(req.payload) + "\n");
|
||||
})
|
||||
}
|
||||
|
||||
export function on_destroy() : void {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Function below are requred by wamr runtime, don't remove or modify them */
|
||||
export function _on_timer_callback(on_timer_id: i32): void {
|
||||
timer.on_timer_callback(on_timer_id);
|
||||
}
|
||||
|
||||
export function _on_request(buffer_offset: i32, size: i32): void {
|
||||
request.on_request(buffer_offset, size);
|
||||
}
|
||||
|
||||
export function _on_response(buffer_offset : i32, size: i32): void {
|
||||
request.on_response(buffer_offset, size);
|
||||
}
|
||||
40
assembly-script/samples/request_handler.ts
Normal file
40
assembly-script/samples/request_handler.ts
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
// The entry file of your WebAssembly module.
|
||||
import * as console from "../wamr_app_lib/console"
|
||||
import * as timer from "../wamr_app_lib/timer"
|
||||
import * as request from "../wamr_app_lib/request"
|
||||
|
||||
export function on_init() : void {
|
||||
request.register_resource_handler("/test", (req) => {
|
||||
console.log("### Req: /test " + String.UTF8.decode(req.payload));
|
||||
|
||||
console.log(" request payload:");
|
||||
console.log(" " + String.UTF8.decode(req.payload) + "\n");
|
||||
|
||||
var resp = request.make_response_for_request(req);
|
||||
resp.set_payload(String.UTF8.encode("Ok"), 2);
|
||||
request.api_response_send(resp);
|
||||
});
|
||||
}
|
||||
|
||||
export function on_destroy() : void {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Function below are requred by wamr runtime, don't remove or modify them */
|
||||
export function _on_timer_callback(on_timer_id: i32): void {
|
||||
timer.on_timer_callback(on_timer_id);
|
||||
}
|
||||
|
||||
export function _on_request(buffer_offset: i32, size: i32): void {
|
||||
request.on_request(buffer_offset, size);
|
||||
}
|
||||
|
||||
export function _on_response(buffer_offset : i32, size: i32): void {
|
||||
request.on_response(buffer_offset, size);
|
||||
}
|
||||
43
assembly-script/samples/request_sender.ts
Normal file
43
assembly-script/samples/request_sender.ts
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
// The entry file of your WebAssembly module.
|
||||
import * as console from "../wamr_app_lib/console"
|
||||
import * as timer from "../wamr_app_lib/timer"
|
||||
import * as request from "../wamr_app_lib/request"
|
||||
|
||||
export function on_init() : void {
|
||||
var payload = String.UTF8.encode("test message");
|
||||
request.post("/test", payload, payload.byteLength, "", (resp) => {
|
||||
if (resp != null) {
|
||||
console.log("Post Success");
|
||||
|
||||
if (resp.payload != null) {
|
||||
console.log(" response payload:")
|
||||
console.log(" " + String.UTF8.decode(resp.payload!) + "\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
console.log("Post Timeout");
|
||||
});
|
||||
}
|
||||
|
||||
export function on_destroy() : void {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Function below are requred by wamr runtime, don't remove or modify them */
|
||||
export function _on_timer_callback(on_timer_id: i32): void {
|
||||
timer.on_timer_callback(on_timer_id);
|
||||
}
|
||||
|
||||
export function _on_request(buffer_offset: i32, size: i32): void {
|
||||
request.on_request(buffer_offset, size);
|
||||
}
|
||||
|
||||
export function _on_response(buffer_offset : i32, size: i32): void {
|
||||
request.on_response(buffer_offset, size);
|
||||
}
|
||||
36
assembly-script/samples/timer.ts
Normal file
36
assembly-script/samples/timer.ts
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
// The entry file of your WebAssembly module.
|
||||
import * as console from '../wamr_app_lib/console'
|
||||
import * as timer from '../wamr_app_lib/timer'
|
||||
|
||||
/* clousure is not implemented yet, we need to declare global variables
|
||||
so that they can be accessed inside a callback function */
|
||||
var cnt = 0;
|
||||
var my_timer: timer.user_timer;
|
||||
|
||||
export function on_init(): void {
|
||||
/* The callback function will be called every 2 second,
|
||||
and will stop after 10 calls */
|
||||
my_timer = timer.setInterval(() => {
|
||||
cnt ++;
|
||||
console.log((cnt * 2).toString() + " seconds passed");
|
||||
|
||||
if (cnt >= 10) {
|
||||
timer.timer_cancel(my_timer);
|
||||
console.log("Stop Timer");
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
export function on_destroy(): void {
|
||||
|
||||
}
|
||||
|
||||
/* Function below are requred by wamr runtime, don't remove or modify them */
|
||||
export function _on_timer_callback(on_timer_id: i32): void {
|
||||
timer.on_timer_callback(on_timer_id);
|
||||
}
|
||||
6
assembly-script/samples/tsconfig.json
Normal file
6
assembly-script/samples/tsconfig.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"extends": "../node_modules/assemblyscript/std/assembly.json",
|
||||
"include": [
|
||||
"./**/*.ts"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user