summaryrefslogtreecommitdiff
path: root/src/tests/eolian_cxx/generic.c
blob: b0a32f6741cd20cc8e47ec3f59c2573cd9ce5989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include <Eo.h>
#include <Ecore.h>

#include "generic.eo.h"

struct _Generic_Data
{
   int        req_ctor_a_val;
   Ecore_Cb   req_ctor_b_cb;
   void      *req_ctor_b_data;
   int        opt_ctor_a_val;
   Ecore_Cb   opt_ctor_b_cb;
   void      *opt_ctor_b_data;
};
typedef struct _Generic_Data Generic_Data;

#define MY_CLASS GENERIC_CLASS

static Eo *_generic_eo_base_constructor(Eo *obj, Generic_Data *pd)
{
   pd->req_ctor_a_val = 0;
   pd->req_ctor_b_cb = NULL;
   pd->req_ctor_b_data = NULL;
   pd->opt_ctor_a_val = 0;
   pd->opt_ctor_b_cb = NULL;
   pd->opt_ctor_b_data = NULL;
   return eo_constructor(eo_super(obj, MY_CLASS));
}

static void _generic_required_ctor_a(Eo *obj EINA_UNUSED, Generic_Data *pd, int value)
{
   pd->req_ctor_a_val = value;
}

static void _generic_required_ctor_b(Eo *obj EINA_UNUSED, Generic_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data)
{
   cb(data);
}

static void _generic_optional_ctor_a(Eo *obj EINA_UNUSED, Generic_Data *pd, int value)
{
   pd->opt_ctor_a_val = value;
}

static void _generic_optional_ctor_b(Eo *obj EINA_UNUSED, Generic_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data)
{
   cb(data);
}

static int _generic_req_ctor_a_value_get(Eo *obj EINA_UNUSED, Generic_Data *pd)
{
   return pd->req_ctor_a_val;
}

static int _generic_opt_ctor_a_value_get(Eo *obj EINA_UNUSED, Generic_Data *pd)
{
   return pd->opt_ctor_a_val;
}

static void _generic_call_req_ctor_b_callback(Eo *obj EINA_UNUSED, Generic_Data *pd)
{
   if (pd->req_ctor_b_cb)
     pd->req_ctor_b_cb(pd->req_ctor_b_data);
}

static void _generic_call_opt_ctor_b_callback(Eo *obj EINA_UNUSED, Generic_Data *pd)
{
   if (pd->opt_ctor_b_cb)
     pd->opt_ctor_b_cb(pd->opt_ctor_b_data);
}

#include "generic.eo.c"