]> rtime.felk.cvut.cz Git - frescor/forb.git/blob - src/tests/sharead_lib/forb_shlib.c
forb: Added shared library for testing of forbrun-based server execution
[frescor/forb.git] / src / tests / sharead_lib / forb_shlib.c
1 #include <forb.h>
2 #include "test_obj.h"
3 #define WVTEST_CONFIGURED
4 #include <wvtest.h>
5 #include <forb/executor.h>
6 #include <forb/object.h>
7 #include <forb/iop.h>
8
9 static CORBA_long add(test_obj obj, CORBA_long val, CORBA_Environment *ev)
10 {
11         int to_add = (intptr_t)forb_object_instance_data(obj);
12         return val + to_add;
13 }
14
15 static CORBA_long add_indirect(test_obj obj, test_obj indirect_obj, CORBA_long val, CORBA_Environment *ev)
16 {
17         return test_obj_add(indirect_obj, val, ev);
18 }
19
20 static const struct forb_test_obj_impl test_obj_impl = {
21         .add = add,
22         .add_indirect = add_indirect,
23 };
24
25
26 void *executor_thread(void *arg)
27 {
28         forb_executor_t *executor = arg;
29         forb_executor_run(executor);
30         return NULL;
31 }
32
33 int forb_main(forb_orb orb, int argc, char *argv[])
34 {
35         test_obj testobj;
36
37         testobj = forb_test_obj_new(orb, &test_obj_impl, (void*)1);
38         if (!testobj)
39                 return -1;
40         forb_execute_object(testobj);
41         return 0;
42 }