summaryrefslogtreecommitdiff
path: root/src/tests/eolian_cxx/generic.eo
blob: b6d2621448d51961db91e1345bb4d4b617e963da (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117

struct Generic.Event
{
  field1: int;
  field2: list<ptr(int)>;
}

class Generic (Efl.Object)
{
   data: Generic_Data;
   methods {
      @property req_ctor_a_value {
         get {
         }
         values {
            value: int;
         }
      }
      @property opt_ctor_a_value {
         get {
         }
         values {
            value: int;
         }
      }
      required_ctor_a {
         params {
            @in value: int;
         }
      }
      required_ctor_b {
         params {
            @in value: int;
         }
      }
      optional_ctor_a {
         params {
            @in value: int;
         }
      }
      optional_ctor_b {
         params {
            @in value: int;
         }
      }

      @property req_ctor_b_value {
         get {}
         values {
            value: int;
         }
      }
      @property opt_ctor_b_value {
         get {}
         values {
            value: int;
         }
      }
      out_required_ctor_a {
         params {
            @out value: int;
         }
      }
      out_required_ctor_b {
         params {
            @out value: int;
         }
      }
      out_optional_ctor_a {
         params {
            @out value: int;
         }
      }
      out_optional_ctor_b {
         params {
            @out value: int;
         }
      }

      call_event1 {
      }
      call_event2 {
      }
      call_event3 {
      }
      call_event4 {
      }
      call_event5 {
      }

      protected_method1 @protected {
      }
      beta_method1 @beta {
      }
      protected_beta_method1 @protected @beta {
      }
   }
   constructors {
      .required_ctor_a;
      .required_ctor_b;
      .optional_ctor_a @optional;
      .optional_ctor_b @optional;
   }
   implements {
      Efl.Object.constructor;
   }
   events {
     prefix,event1;
     prefix,event2: Generic;
     prefix,event3: int;
     prefix,event4: list<ptr(int)>;
     prefix,event5: Generic.Event;
     protected,event1 @protected;
     beta,event1 @beta;
     protected,beta,event1 @beta @protected;
   }
}