aboutsummaryrefslogtreecommitdiff
path: root/examples/kaas
diff options
context:
space:
mode:
authorTom Smeding <tom.smeding@gmail.com>2020-03-27 22:47:57 +0100
committerTom Smeding <tom.smeding@gmail.com>2020-03-27 22:47:57 +0100
commitfd421e32780cad46782c16cd4e15947f295a08c7 (patch)
tree04632f49f7c8860dee4237a0afe8292a949bdc9e /examples/kaas
Initial, untested version of controller and worker
Worker has been tested to a marginal extent, but the controller is litereally untested.
Diffstat (limited to 'examples/kaas')
-rw-r--r--examples/kaas/Makefile9
-rw-r--r--examples/kaas/kaas.c32
2 files changed, 41 insertions, 0 deletions
diff --git a/examples/kaas/Makefile b/examples/kaas/Makefile
new file mode 100644
index 0000000..e7d5154
--- /dev/null
+++ b/examples/kaas/Makefile
@@ -0,0 +1,9 @@
+.PHONY: all clean
+
+all: kaas.so
+
+clean:
+ rm -f kaas.so
+
+kaas.so: kaas.c
+ gcc -Wall -Wextra -fPIC -shared $< -o $@
diff --git a/examples/kaas/kaas.c b/examples/kaas/kaas.c
new file mode 100644
index 0000000..f823442
--- /dev/null
+++ b/examples/kaas/kaas.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+__attribute__((constructor))
+void constr() {
+ printf("kaas: constructor!\n");
+}
+
+__attribute__((destructor))
+void destr() {
+ printf("kaas: destructor!\n");
+}
+
+int worker_init(int version) {
+ printf("kaas: initialised with version %d\n", version);
+ return 0;
+}
+
+int worker_run_job(size_t size, void *input_, size_t *outsize, void **outputp) {
+ const char *input = input_;
+ char *output = malloc(size);
+ for (size_t i = 0; i < size; i++) output[i] = toupper(input[i]);
+ *outsize = size;
+ *outputp = output;
+ return 0;
+}
+
+void worker_free_outdata(size_t size, void *data) {
+ (void)size;
+ free(data);
+}