Testing callbacks and so on.
[panamaz] / test-api / api.c
1
2 #include <stdio.h>
3 #include <string.h>
4 #include "api.h"
5
6 void print_data(struct data *data) {
7         while (data) {
8                 printf("%p: a=%d b=%d c=%d d=%d", data, data->a, data->b, data->c, data->d);
9                 if (data->test_a)
10                         printf(" data->test_a()=%d", data->test_a());
11                 printf("\n");
12                 data = data->next;
13         }
14 }
15
16 static void funca(int a) {
17         printf("funca: %d\n", a);
18 }
19
20 static int funcb(int b) {
21         printf("funcb: %d\n", b);
22         return b * b;
23 }
24
25 static int funcc(float f) {
26         printf("funcc: %f\n", f);
27         return (int)f;
28 }
29
30 void *api_func(const char *name) {
31         if (strcmp(name, "funca") == 0)
32                 return funca;
33         else if (strcmp(name, "funcb") == 0)
34                 return funcb;
35         else if (strcmp(name, "funcc") == 0)
36                 return funcc;
37         else
38                 return NULL;
39 }