超漢字アプリケーション開発用のProtocol Buffersコンパイラの開発
リビジョン | 805a36d5adc7ff5e0c2b27a24812185d25c3acf6 (tree) |
---|---|
日時 | 2015-03-04 02:35:29 |
作者 | ornse01 <ornse01@user...> |
コミッター | ornse01 |
add field implementation partially.
@@ -1,24 +1,66 @@ | ||
1 | 1 | /* this file is automaticall generated. */ |
2 | 2 | |
3 | 3 | #include <basic.h> |
4 | +#include <stdlib.h> | |
4 | 5 | #include <coding/pb_scalartypes.h> |
5 | 6 | |
6 | 7 | #include "<%= header_file_name %>" |
7 | 8 | |
8 | 9 | <%- msg_list.each do |m| -%> |
9 | 10 | struct <%= m.name %>_ { |
11 | + <%- m.each_field do |f| -%> | |
12 | + <%- if f.is_singular_numeric? -%> | |
13 | + Bool <%= f.name %>_exist; | |
14 | + <%= f.to_c_type %> <%= f.name %>; | |
15 | + <%- end -%> | |
16 | + <%- if f.is_singular_string? -%> | |
17 | + pb_str_t *<%= f.name %>; | |
18 | + <%- end -%> | |
19 | + <%- if f.is_singular_bytes? -%> | |
20 | + pb_bytes_t *<%= f.name %>; | |
21 | + <%- end -%> | |
22 | + <%- end -%> | |
10 | 23 | }; |
11 | 24 | |
12 | 25 | <%- end -%> |
13 | 26 | |
14 | 27 | <%- msg_list.each do |m| -%> |
15 | 28 | /* <%= m.name %> */ |
29 | +LOCAL VOID <%= m.name %>__initialize(<%= m.name %> *m) | |
30 | +{ | |
31 | + <%- m.each_field do |f| -%> | |
32 | + <%- if f.is_singular_numeric? -%> | |
33 | + m-><%= f.name %>_exist = False; | |
34 | + m-><%= f.name %> = 0; | |
35 | + <%- end -%> | |
36 | + <%- if f.is_singular_string? -%> | |
37 | + m-><%= f.name %> = NULL; | |
38 | + <%- end -%> | |
39 | + <%- if f.is_singular_bytes? -%> | |
40 | + m-><%= f.name %> = NULL; | |
41 | + <%- end -%> | |
42 | + <%- end -%> | |
43 | +} | |
44 | + | |
45 | +LOCAL VOID <%= m.name %>__finalize(<%= m.name %> *m) | |
46 | +{ | |
47 | +} | |
48 | + | |
16 | 49 | EXPORT <%= m.name %>* <%= m.name %>__new() |
17 | 50 | { |
51 | + <%= m.name %> *m; | |
52 | + m = (<%= m.name %>*)malloc(sizeof(<%= m.name %>)); | |
53 | + if (m == NULL) { | |
54 | + return NULL; | |
55 | + } | |
56 | + <%= m.name %>__initialize(m); | |
57 | + return m; | |
18 | 58 | } |
19 | 59 | |
20 | 60 | EXPORT VOID <%= m.name %>__delete(<%= m.name %> *m) |
21 | 61 | { |
62 | + <%= m.name %>__finalize(m); | |
63 | + free(m); | |
22 | 64 | } |
23 | 65 | |
24 | 66 | EXPORT Bool <%= m.name %>__isequal(<%= m.name %> *m, <%= m.name %> *other) |
@@ -34,28 +76,35 @@ EXPORT VOID <%= m.name %>__swap(<%= m.name %> *m, <%= m.name %> *other) | ||
34 | 76 | <%- if f.is_singular_numeric? -%> |
35 | 77 | EXPORT Bool <%= m.name %>__has_<%= f.name %>(<%= m.name %> *m) |
36 | 78 | { |
79 | + return m-><%= f.name %>_exist; | |
37 | 80 | } |
38 | 81 | |
39 | 82 | EXPORT <%= f.to_c_type %> <%= m.name %>__<%= f.name %>(<%= m.name %> *m) |
40 | 83 | { |
84 | + return m-><%= f.name %>; | |
41 | 85 | } |
42 | 86 | |
43 | 87 | EXPORT VOID <%= m.name %>__set_<%= f.name %>(<%= m.name %> *m, <%= f.to_c_type %> value) |
44 | 88 | { |
89 | + m-><%= f.name %> = value; | |
45 | 90 | } |
46 | 91 | |
47 | 92 | EXPORT VOID <%= m.name %>__clear_<%= f.name %>(<%= m.name %> *m) |
48 | 93 | { |
94 | + m-><%= f.name %>_exist = False; | |
95 | + m-><%= f.name %> = 0; | |
49 | 96 | } |
50 | 97 | |
51 | 98 | <%- end -%> |
52 | 99 | <%- if f.is_singular_string? -%> |
53 | -EXPORT Bool <%= m.name %>__has_<%= f.name %>(<%= m.name %> *m) | |
54 | -{ | |
100 | +EXPORT Bool <%= m.name %>__has_<%= f.name %>(<%= m.name %> *m){ | |
101 | + | |
102 | + return m-><%= f.name %> != NULL; | |
55 | 103 | } |
56 | 104 | |
57 | 105 | EXPORT pb_str_t* <%= m.name %>__<%= f.name %>(<%= m.name %> *m) |
58 | 106 | { |
107 | + return m-><%= f.name %>; | |
59 | 108 | } |
60 | 109 | |
61 | 110 | EXPORT void <%= m.name %>__set_<%= f.name %>(<%= m.name %> *m, const pb_str_t *string) |
@@ -82,10 +131,12 @@ EXPORT pb_str_t* <%= m.name %>__release_<%= f.name %>(<%= m.name %> *m) | ||
82 | 131 | <%- if f.is_singular_bytes? -%> |
83 | 132 | EXPORT Bool <%= m.name %>__has_<%= f.name %>(<%= m.name %> *m) |
84 | 133 | { |
134 | + return m-><%= f.name %> != NULL; | |
85 | 135 | } |
86 | 136 | |
87 | 137 | EXPORT pb_bytes_t* <%= m.name %>__<%= f.name %>(<%= m.name %> *m) |
88 | 138 | { |
139 | + return m-><%= f.name %>; | |
89 | 140 | } |
90 | 141 | |
91 | 142 | EXPORT void <%= m.name %>__set_<%= f.name %>(<%= m.name %> *m, const pb_bytes_t *string) |