agoo 2.5.5 → 2.5.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of agoo might be problematic. Click here for more details.

Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/ext/agoo/agoo.c +4 -3
  5. data/ext/agoo/atomic.h +120 -0
  6. data/ext/agoo/bind.c +52 -52
  7. data/ext/agoo/bind.h +13 -13
  8. data/ext/agoo/con.c +499 -481
  9. data/ext/agoo/con.h +47 -39
  10. data/ext/agoo/debug.c +42 -42
  11. data/ext/agoo/debug.h +1 -1
  12. data/ext/agoo/doc.c +17 -17
  13. data/ext/agoo/doc.h +12 -12
  14. data/ext/agoo/err.c +18 -18
  15. data/ext/agoo/err.h +27 -27
  16. data/ext/agoo/error_stream.c +9 -9
  17. data/ext/agoo/extconf.rb +3 -0
  18. data/ext/agoo/gqlintro.c +43 -43
  19. data/ext/agoo/gqlintro.h +1 -1
  20. data/ext/agoo/gqlvalue.c +131 -131
  21. data/ext/agoo/gqlvalue.h +32 -32
  22. data/ext/agoo/graphql.c +158 -158
  23. data/ext/agoo/graphql.h +34 -33
  24. data/ext/agoo/hook.c +15 -14
  25. data/ext/agoo/hook.h +18 -14
  26. data/ext/agoo/http.c +14 -14
  27. data/ext/agoo/http.h +4 -4
  28. data/ext/agoo/kinds.h +5 -5
  29. data/ext/agoo/log.c +232 -224
  30. data/ext/agoo/log.h +93 -93
  31. data/ext/agoo/method.h +17 -17
  32. data/ext/agoo/page.c +88 -86
  33. data/ext/agoo/page.h +21 -21
  34. data/ext/agoo/pub.c +36 -36
  35. data/ext/agoo/pub.h +23 -23
  36. data/ext/agoo/queue.c +37 -38
  37. data/ext/agoo/queue.h +20 -19
  38. data/ext/agoo/rack_logger.c +13 -13
  39. data/ext/agoo/ready.c +357 -0
  40. data/ext/agoo/ready.h +41 -0
  41. data/ext/agoo/req.c +11 -11
  42. data/ext/agoo/req.h +30 -31
  43. data/ext/agoo/request.c +46 -46
  44. data/ext/agoo/request.h +2 -2
  45. data/ext/agoo/res.c +40 -18
  46. data/ext/agoo/res.h +14 -14
  47. data/ext/agoo/response.c +6 -6
  48. data/ext/agoo/response.h +9 -9
  49. data/ext/agoo/rhook.c +3 -3
  50. data/ext/agoo/rhook.h +1 -1
  51. data/ext/agoo/rlog.c +47 -42
  52. data/ext/agoo/rlog.h +0 -1
  53. data/ext/agoo/rresponse.c +33 -33
  54. data/ext/agoo/rresponse.h +1 -1
  55. data/ext/agoo/rserver.c +184 -175
  56. data/ext/agoo/rserver.h +2 -2
  57. data/ext/agoo/rupgraded.c +41 -41
  58. data/ext/agoo/rupgraded.h +3 -3
  59. data/ext/agoo/sdl.c +80 -80
  60. data/ext/agoo/sdl.h +1 -1
  61. data/ext/agoo/seg.h +2 -2
  62. data/ext/agoo/server.c +143 -117
  63. data/ext/agoo/server.h +43 -42
  64. data/ext/agoo/sse.c +7 -7
  65. data/ext/agoo/sse.h +4 -4
  66. data/ext/agoo/subject.c +5 -5
  67. data/ext/agoo/subject.h +6 -6
  68. data/ext/agoo/text.c +21 -21
  69. data/ext/agoo/text.h +14 -13
  70. data/ext/agoo/upgraded.c +41 -40
  71. data/ext/agoo/upgraded.h +41 -40
  72. data/ext/agoo/websocket.c +42 -42
  73. data/ext/agoo/websocket.h +16 -16
  74. data/lib/agoo/version.rb +1 -1
  75. data/test/static_test.rb +2 -0
  76. metadata +5 -5
  77. data/ext/agoo/log_queue.h +0 -30
  78. data/ext/agoo/sub.c +0 -111
  79. data/ext/agoo/sub.h +0 -36
@@ -7,13 +7,13 @@
7
7
 
8
8
  #define MAX_WORKERS 32
9
9
 
10
- typedef struct _RServer {
10
+ typedef struct _rServer {
11
11
  int worker_cnt;
12
12
  int worker_pids[MAX_WORKERS];
13
13
  VALUE *eval_threads; // Qnil terminated
14
14
  } *RServer;
15
15
 
16
- extern struct _RServer the_rserver;
16
+ extern struct _rServer the_rserver;
17
17
 
18
18
  extern void server_init(VALUE mod);
19
19
  extern VALUE rserver_shutdown(VALUE self);
@@ -22,16 +22,16 @@ static VALUE websocket_sym;
22
22
  static ID on_open_id = 0;
23
23
  static ID to_s_id = 0;
24
24
 
25
- static Upgraded
25
+ static agooUpgraded
26
26
  get_upgraded(VALUE self) {
27
- Upgraded up = NULL;
27
+ agooUpgraded up = NULL;
28
28
 
29
- if (the_server.active) {
30
- pthread_mutex_lock(&the_server.up_lock);
29
+ if (agoo_server.active) {
30
+ pthread_mutex_lock(&agoo_server.up_lock);
31
31
  if (NULL != (up = DATA_PTR(self))) {
32
32
  atomic_fetch_add(&up->ref_cnt, 1);
33
33
  }
34
- pthread_mutex_unlock(&the_server.up_lock);
34
+ pthread_mutex_unlock(&agoo_server.up_lock);
35
35
  }
36
36
  return up;
37
37
  }
@@ -68,10 +68,10 @@ extract_subject(VALUE subject, int *slen) {
68
68
  */
69
69
  static VALUE
70
70
  rup_write(VALUE self, VALUE msg) {
71
- Upgraded up = get_upgraded(self);
72
- const char *message;
73
- size_t mlen;
74
- bool bin = false;
71
+ agooUpgraded up = get_upgraded(self);
72
+ const char *message;
73
+ size_t mlen;
74
+ bool bin = false;
75
75
 
76
76
  if (NULL == up) {
77
77
  return Qfalse;
@@ -88,7 +88,7 @@ rup_write(VALUE self, VALUE msg) {
88
88
  message = StringValuePtr(rs);
89
89
  mlen = RSTRING_LEN(rs);
90
90
  }
91
- return upgraded_write(up, message, mlen, bin, false) ? Qtrue : Qfalse;
91
+ return agoo_upgraded_write(up, message, mlen, bin, false) ? Qtrue : Qfalse;
92
92
  }
93
93
 
94
94
  /* Document-method: subscribe
@@ -104,12 +104,12 @@ rup_write(VALUE self, VALUE msg) {
104
104
  */
105
105
  static VALUE
106
106
  rup_subscribe(VALUE self, VALUE subject) {
107
- Upgraded up;
108
- int slen;
109
- const char *subj = extract_subject(subject, &slen);
107
+ agooUpgraded up;
108
+ int slen;
109
+ const char *subj = extract_subject(subject, &slen);
110
110
 
111
111
  if (NULL != (up = get_upgraded(self))) {
112
- upgraded_subscribe(up, subj, slen, false);
112
+ agoo_upgraded_subscribe(up, subj, slen, false);
113
113
  }
114
114
  return Qnil;
115
115
  }
@@ -125,15 +125,15 @@ rup_subscribe(VALUE self, VALUE subject) {
125
125
  */
126
126
  static VALUE
127
127
  rup_unsubscribe(int argc, VALUE *argv, VALUE self) {
128
- Upgraded up;
129
- const char *subject = NULL;
130
- int slen = 0;
128
+ agooUpgraded up;
129
+ const char *subject = NULL;
130
+ int slen = 0;
131
131
 
132
132
  if (0 < argc) {
133
133
  subject = extract_subject(argv[0], &slen);
134
134
  }
135
135
  if (NULL != (up = get_upgraded(self))) {
136
- upgraded_unsubscribe(up, subject, slen, false);
136
+ agoo_upgraded_unsubscribe(up, subject, slen, false);
137
137
  }
138
138
  return Qnil;
139
139
  }
@@ -146,10 +146,10 @@ rup_unsubscribe(int argc, VALUE *argv, VALUE self) {
146
146
  */
147
147
  static VALUE
148
148
  rup_close(VALUE self) {
149
- Upgraded up = get_upgraded(self);
149
+ agooUpgraded up = get_upgraded(self);
150
150
 
151
151
  if (NULL != up) {
152
- upgraded_close(up, false);
152
+ agoo_upgraded_close(up, false);
153
153
  }
154
154
  return Qnil;
155
155
  }
@@ -163,11 +163,11 @@ rup_close(VALUE self) {
163
163
  */
164
164
  static VALUE
165
165
  rup_pending(VALUE self) {
166
- Upgraded up = get_upgraded(self);
167
- int pending = -1;
166
+ agooUpgraded up = get_upgraded(self);
167
+ int pending = -1;
168
168
 
169
169
  if (NULL != up) {
170
- pending = upgraded_pending(up);
170
+ pending = agoo_upgraded_pending(up);
171
171
  atomic_fetch_sub(&up->ref_cnt, 1);
172
172
  }
173
173
  return INT2NUM(pending);
@@ -181,11 +181,11 @@ rup_pending(VALUE self) {
181
181
  */
182
182
  static VALUE
183
183
  rup_open(VALUE self) {
184
- Upgraded up = get_upgraded(self);
185
- int pending = -1;
184
+ agooUpgraded up = get_upgraded(self);
185
+ int pending = -1;
186
186
 
187
187
  if (NULL != up) {
188
- pending = atomic_load(&up->pending);
188
+ pending = (int)(long)atomic_load(&up->pending);
189
189
  atomic_fetch_sub(&up->ref_cnt, 1);
190
190
  }
191
191
  return 0 <= pending ? Qtrue : Qfalse;
@@ -202,43 +202,43 @@ static VALUE
202
202
  rup_protocol(VALUE self) {
203
203
  VALUE pro = Qnil;
204
204
 
205
- if (the_server.active) {
206
- Upgraded up;
205
+ if (agoo_server.active) {
206
+ agooUpgraded up;
207
207
 
208
- pthread_mutex_lock(&the_server.up_lock);
208
+ pthread_mutex_lock(&agoo_server.up_lock);
209
209
  if (NULL != (up = DATA_PTR(self)) && NULL != up->con) {
210
210
  switch (up->con->bind->kind) {
211
- case CON_WS:
211
+ case AGOO_CON_WS:
212
212
  pro = websocket_sym;
213
213
  break;
214
- case CON_SSE:
214
+ case AGOO_CON_SSE:
215
215
  pro = sse_sym;
216
216
  break;
217
217
  default:
218
218
  break;
219
219
  }
220
220
  }
221
- pthread_mutex_unlock(&the_server.up_lock);
221
+ pthread_mutex_unlock(&agoo_server.up_lock);
222
222
  }
223
223
  return pro;
224
224
  }
225
225
 
226
226
  static void
227
- on_destroy(Upgraded up) {
227
+ on_destroy(agooUpgraded up) {
228
228
  if (Qnil != (VALUE)up->wrap) {
229
229
  DATA_PTR((VALUE)up->wrap) = NULL;
230
230
  up->wrap = (void*)Qnil;
231
231
  }
232
232
  }
233
233
 
234
- Upgraded
235
- rupgraded_create(Con c, VALUE obj, VALUE env) {
236
- Upgraded up;
234
+ agooUpgraded
235
+ rupgraded_create(agooCon c, VALUE obj, VALUE env) {
236
+ agooUpgraded up;
237
237
 
238
- if (!the_server.active) {
238
+ if (!agoo_server.active) {
239
239
  rb_raise(rb_eIOError, "Server shutdown.");
240
240
  }
241
- if (NULL != (up = upgraded_create(c, (void*)obj, (void*)env))) {
241
+ if (NULL != (up = agoo_upgraded_create(c, (void*)obj, (void*)env))) {
242
242
  up->on_empty = rb_respond_to(obj, rb_intern("on_drained"));
243
243
  up->on_close = rb_respond_to(obj, rb_intern("on_close"));
244
244
  up->on_shut = rb_respond_to(obj, rb_intern("on_shutdown"));
@@ -248,7 +248,7 @@ rupgraded_create(Con c, VALUE obj, VALUE env) {
248
248
 
249
249
  up->wrap = (void*)Data_Wrap_Struct(upgraded_class, NULL, NULL, up);
250
250
 
251
- server_add_upgraded(up);
251
+ agoo_server_add_upgraded(up);
252
252
 
253
253
  if (rb_respond_to(obj, on_open_id)) {
254
254
  rb_funcall(obj, on_open_id, 1, (VALUE)up->wrap);
@@ -265,11 +265,11 @@ extern VALUE ragoo_publish(VALUE self, VALUE subject, VALUE message);
265
265
  * call-seq: env()
266
266
  *
267
267
  * Returns the environment passed to the call method that initiated the
268
- * Upgraded Object creation.
268
+ * agooUpgraded Object creation.
269
269
  */
270
270
  static VALUE
271
271
  env(VALUE self) {
272
- Upgraded up = get_upgraded(self);
272
+ agooUpgraded up = get_upgraded(self);
273
273
 
274
274
  if (NULL != up) {
275
275
  return (VALUE)up->env;
@@ -7,10 +7,10 @@
7
7
 
8
8
  #include "upgraded.h"
9
9
 
10
- struct _Con;
10
+ struct _agooCon;
11
11
 
12
- extern void upgraded_init(VALUE mod);
13
- extern Upgraded rupgraded_create(struct _Con *c, VALUE obj, VALUE env);
12
+ extern void upgraded_init(VALUE mod);
13
+ extern agooUpgraded rupgraded_create(struct _agooCon *c, VALUE obj, VALUE env);
14
14
 
15
15
  extern const char* extract_subject(VALUE subject, int *slen);
16
16
 
@@ -9,56 +9,56 @@
9
9
  #include "sdl.h"
10
10
 
11
11
  static int
12
- extract_name(Err err, Doc doc, const char *key, int klen, char *name, size_t max) {
12
+ extract_name(agooErr err, agooDoc doc, const char *key, int klen, char *name, size_t max) {
13
13
  const char *start;
14
14
  size_t nlen;
15
15
 
16
16
  if (0 != strncmp(doc->cur, key, klen)) {
17
- return doc_err(doc, err, "Expected %s key word", key);
17
+ return agoo_doc_err(doc, err, "Expected %s key word", key);
18
18
  }
19
19
  doc->cur += klen;
20
- if (0 == doc_skip_white(doc)) {
21
- return doc_err(doc, err, "Expected %s key word", key);
20
+ if (0 == agoo_doc_skip_white(doc)) {
21
+ return agoo_doc_err(doc, err, "Expected %s key word", key);
22
22
  }
23
23
  start = doc->cur;
24
- doc_read_token(doc);
24
+ agoo_doc_read_token(doc);
25
25
  if (doc->cur == start) {
26
- return doc_err(doc, err, "Name not provided");
26
+ return agoo_doc_err(doc, err, "Name not provided");
27
27
  }
28
28
  nlen = doc->cur - start;
29
29
  if (max <= nlen) {
30
- return doc_err(doc, err, "Name too long");
30
+ return agoo_doc_err(doc, err, "Name too long");
31
31
  }
32
32
  strncpy(name, start, nlen);
33
33
  name[nlen] = '\0';
34
34
 
35
- return ERR_OK;
35
+ return AGOO_ERR_OK;
36
36
  }
37
37
 
38
38
  static int
39
- make_scalar(Err err, Doc doc, const char *desc, int len) {
39
+ make_scalar(agooErr err, agooDoc doc, const char *desc, int len) {
40
40
  char name[256];
41
41
 
42
- if (ERR_OK != extract_name(err, doc, "scalar", 6, name, sizeof(name))) {
42
+ if (AGOO_ERR_OK != extract_name(err, doc, "scalar", 6, name, sizeof(name))) {
43
43
  return err->code;
44
44
  }
45
45
  gql_scalar_create(err, name, desc, len, false);
46
46
 
47
- return ERR_OK;
47
+ return AGOO_ERR_OK;
48
48
  }
49
49
 
50
50
  static int
51
- make_enum(Err err, Doc doc, const char *desc, int len) {
51
+ make_enum(agooErr err, agooDoc doc, const char *desc, int len) {
52
52
  char name[256];
53
53
  const char *start;
54
54
  gqlType type;
55
55
 
56
- if (ERR_OK != extract_name(err, doc, "enum", 4, name, sizeof(name))) {
56
+ if (AGOO_ERR_OK != extract_name(err, doc, "enum", 4, name, sizeof(name))) {
57
57
  return err->code;
58
58
  }
59
- doc_skip_white(doc);
59
+ agoo_doc_skip_white(doc);
60
60
  if ('{' != *doc->cur) {
61
- return doc_err(doc, err, "Expected '{'");
61
+ return agoo_doc_err(doc, err, "Expected '{'");
62
62
  }
63
63
  doc->cur++;
64
64
 
@@ -66,60 +66,60 @@ make_enum(Err err, Doc doc, const char *desc, int len) {
66
66
  return err->code;
67
67
  }
68
68
  while (doc->cur < doc->end) {
69
- doc_skip_white(doc);
69
+ agoo_doc_skip_white(doc);
70
70
  start = doc->cur;
71
- doc_read_token(doc);
71
+ agoo_doc_read_token(doc);
72
72
  if (doc->cur == start) {
73
73
  if ('}' == *doc->cur) {
74
74
  doc->cur++;
75
75
  break;
76
76
  }
77
- return doc_err(doc, err, "Invalid Enum value");
77
+ return agoo_doc_err(doc, err, "Invalid Enum value");
78
78
  }
79
- if (ERR_OK != gql_enum_add(err, type, start, (int)(doc->cur - start))) {
79
+ if (AGOO_ERR_OK != gql_enum_add(err, type, start, (int)(doc->cur - start))) {
80
80
  return err->code;
81
81
  }
82
82
  }
83
- return ERR_OK;
83
+ return AGOO_ERR_OK;
84
84
  }
85
85
 
86
86
  static int
87
- make_union(Err err, Doc doc, const char *desc, int len) {
87
+ make_union(agooErr err, agooDoc doc, const char *desc, int len) {
88
88
  char name[256];
89
89
  const char *start;
90
90
  gqlType type;
91
91
 
92
- if (ERR_OK != extract_name(err, doc, "union", 5, name, sizeof(name))) {
92
+ if (AGOO_ERR_OK != extract_name(err, doc, "union", 5, name, sizeof(name))) {
93
93
  return err->code;
94
94
  }
95
- doc_skip_white(doc);
95
+ agoo_doc_skip_white(doc);
96
96
  if ('=' != *doc->cur) {
97
- return doc_err(doc, err, "Expected '='");
97
+ return agoo_doc_err(doc, err, "Expected '='");
98
98
  }
99
99
  doc->cur++;
100
- doc_skip_white(doc);
100
+ agoo_doc_skip_white(doc);
101
101
 
102
102
  if (NULL == (type = gql_union_create(err, name, desc, len, false))) {
103
103
  return err->code;
104
104
  }
105
105
  while (doc->cur < doc->end) {
106
- doc_skip_white(doc);
106
+ agoo_doc_skip_white(doc);
107
107
  start = doc->cur;
108
- doc_read_token(doc);
109
- if (ERR_OK != gql_union_add(err, type, start, (int)(doc->cur - start))) {
108
+ agoo_doc_read_token(doc);
109
+ if (AGOO_ERR_OK != gql_union_add(err, type, start, (int)(doc->cur - start))) {
110
110
  return err->code;
111
111
  }
112
- doc_skip_white(doc);
112
+ agoo_doc_skip_white(doc);
113
113
  if ('|' != *doc->cur) {
114
114
  break;
115
115
  }
116
116
  doc->cur++; // skip |
117
117
  }
118
- return ERR_OK;
118
+ return AGOO_ERR_OK;
119
119
  }
120
120
 
121
121
  static int
122
- make_arg(Err err, Doc doc, gqlDir dir) {
122
+ make_arg(agooErr err, agooDoc doc, gqlDir dir) {
123
123
  char name[256];
124
124
  char type_name[256];
125
125
  const char *start;
@@ -129,10 +129,10 @@ make_arg(Err err, Doc doc, gqlDir dir) {
129
129
  bool required = false;
130
130
  gqlValue dv = NULL;
131
131
 
132
- doc_skip_white(doc);
132
+ agoo_doc_skip_white(doc);
133
133
  if ('"' == *doc->cur) {
134
134
  desc = doc->cur + 1;
135
- if (ERR_OK != doc_read_string(err, doc)) {
135
+ if (AGOO_ERR_OK != agoo_doc_read_string(err, doc)) {
136
136
  return err->code;
137
137
  }
138
138
  if ('"' == *desc) { // must be a """
@@ -142,81 +142,81 @@ make_arg(Err err, Doc doc, gqlDir dir) {
142
142
  desc_end = doc->cur - 1;
143
143
  }
144
144
  }
145
- doc_skip_white(doc);
145
+ agoo_doc_skip_white(doc);
146
146
  start = doc->cur;
147
- doc_read_token(doc);
147
+ agoo_doc_read_token(doc);
148
148
  if (doc->cur == start) {
149
- return doc_err(doc, err, "Argument name not provided");
149
+ return agoo_doc_err(doc, err, "Argument name not provided");
150
150
  }
151
151
  if (':' != *doc->cur) {
152
- return doc_err(doc, err, "Expected ':'");
152
+ return agoo_doc_err(doc, err, "Expected ':'");
153
153
  }
154
154
  nlen = doc->cur - start;
155
155
  if (sizeof(name) <= nlen) {
156
- return doc_err(doc, err, "Name too long");
156
+ return agoo_doc_err(doc, err, "Name too long");
157
157
  }
158
158
  strncpy(name, start, nlen);
159
159
  name[nlen] = '\0';
160
160
  doc->cur++;
161
161
 
162
162
  // read type
163
- doc_skip_white(doc);
163
+ agoo_doc_skip_white(doc);
164
164
  start = doc->cur;
165
- doc_read_token(doc);
165
+ agoo_doc_read_token(doc);
166
166
  if (doc->cur == start) {
167
- return doc_err(doc, err, "Argument type not provided");
167
+ return agoo_doc_err(doc, err, "Argument type not provided");
168
168
  }
169
169
  nlen = doc->cur - start;
170
170
  if (sizeof(type_name) <= nlen) {
171
- return doc_err(doc, err, "Type name too long");
171
+ return agoo_doc_err(doc, err, "Type name too long");
172
172
  }
173
173
  strncpy(type_name, start, nlen);
174
174
  type_name[nlen] = '\0';
175
175
 
176
- doc_skip_white(doc);
176
+ agoo_doc_skip_white(doc);
177
177
  if ('!' == *doc->cur) {
178
178
  required = true;
179
179
  } else if ('=' == *doc->cur) {
180
- if (NULL == (dv = doc_read_value(err, doc))) {
180
+ if (NULL == (dv = agoo_doc_read_value(err, doc))) {
181
181
  return err->code;
182
182
  }
183
183
  }
184
- doc_skip_white(doc);
184
+ agoo_doc_skip_white(doc);
185
185
  if ('@' == *doc->cur) {
186
186
  // TBD directive
187
187
  }
188
188
  if (NULL == gql_dir_arg(err, dir, name, type_name, desc, (int)(desc_end - desc), dv, required)) {
189
189
  return err->code;
190
190
  }
191
- return ERR_OK;
191
+ return AGOO_ERR_OK;
192
192
  }
193
193
 
194
194
  static int
195
- make_directive(Err err, Doc doc, const char *desc, int len) {
195
+ make_directive(agooErr err, agooDoc doc, const char *desc, int len) {
196
196
  char name[256];
197
197
  const char *start;
198
198
  gqlDir dir;
199
199
  size_t nlen;
200
200
 
201
201
  if (0 != strncmp(doc->cur, "directive", 9)) {
202
- return doc_err(doc, err, "Expected directive key word");
202
+ return agoo_doc_err(doc, err, "Expected directive key word");
203
203
  }
204
204
  doc->cur += 9;
205
- if (0 == doc_skip_white(doc)) {
206
- return doc_err(doc, err, "Expected directive key word");
205
+ if (0 == agoo_doc_skip_white(doc)) {
206
+ return agoo_doc_err(doc, err, "Expected directive key word");
207
207
  }
208
208
  if ('@' != *doc->cur) {
209
- return doc_err(doc, err, "Expected '@'");
209
+ return agoo_doc_err(doc, err, "Expected '@'");
210
210
  }
211
211
  doc->cur++;
212
212
  start = doc->cur;
213
- doc_read_token(doc);
213
+ agoo_doc_read_token(doc);
214
214
  if (doc->cur == start) {
215
- return doc_err(doc, err, "Name not provided");
215
+ return agoo_doc_err(doc, err, "Name not provided");
216
216
  }
217
217
  nlen = doc->cur - start;
218
218
  if (sizeof(name) <= nlen) {
219
- return doc_err(doc, err, "Name too long");
219
+ return agoo_doc_err(doc, err, "Name too long");
220
220
  }
221
221
  strncpy(name, start, nlen);
222
222
  name[nlen] = '\0';
@@ -225,53 +225,53 @@ make_directive(Err err, Doc doc, const char *desc, int len) {
225
225
  }
226
226
  if ('(' == *doc->cur) {
227
227
  while (doc->cur < doc->end) {
228
- if (ERR_OK != make_arg(err, doc, dir)) {
228
+ if (AGOO_ERR_OK != make_arg(err, doc, dir)) {
229
229
  return err->code;
230
230
  }
231
- doc_skip_white(doc);
231
+ agoo_doc_skip_white(doc);
232
232
  if (')' == *doc->cur) {
233
233
  doc->cur++;
234
234
  break;
235
235
  }
236
236
  }
237
237
  }
238
- doc_skip_white(doc);
238
+ agoo_doc_skip_white(doc);
239
239
  start = doc->cur;
240
- doc_read_token(doc);
240
+ agoo_doc_read_token(doc);
241
241
 
242
242
  if (2 != doc->cur - start || 0 != strncmp(start, "on", 2)) {
243
- return doc_err(doc, err, "Expected 'on'");
243
+ return agoo_doc_err(doc, err, "Expected 'on'");
244
244
  }
245
245
  while (doc->cur < doc->end) {
246
- doc_skip_white(doc);
246
+ agoo_doc_skip_white(doc);
247
247
  start = doc->cur;
248
- doc_read_token(doc);
249
- if (ERR_OK != gql_directive_on(err, dir, start, (int)(doc->cur - start))) {
248
+ agoo_doc_read_token(doc);
249
+ if (AGOO_ERR_OK != gql_directive_on(err, dir, start, (int)(doc->cur - start))) {
250
250
  return err->code;
251
251
  }
252
- doc_skip_white(doc);
252
+ agoo_doc_skip_white(doc);
253
253
  if ('|' != *doc->cur) {
254
254
  break;
255
255
  }
256
256
  doc->cur++; // skip |
257
257
  }
258
- return ERR_OK;
258
+ return AGOO_ERR_OK;
259
259
  }
260
260
 
261
261
  int
262
- sdl_parse(Err err, const char *str, int len) {
263
- struct _Doc doc;
264
- const char *desc = NULL;
265
- const char *desc_end = NULL;
262
+ sdl_parse(agooErr err, const char *str, int len) {
263
+ struct _agooDoc doc;
264
+ const char *desc = NULL;
265
+ const char *desc_end = NULL;
266
266
 
267
- doc_init(&doc, str, len);
267
+ agoo_doc_init(&doc, str, len);
268
268
 
269
269
  while (doc.cur < doc.end) {
270
- doc_next_token(&doc);
270
+ agoo_doc_next_token(&doc);
271
271
  switch (*doc.cur) {
272
272
  case '"':
273
273
  desc = doc.cur + 1;
274
- if (ERR_OK != doc_read_string(err, &doc)) {
274
+ if (AGOO_ERR_OK != agoo_doc_read_string(err, &doc)) {
275
275
  return err->code;
276
276
  }
277
277
  if ('"' == *desc) { // must be a """
@@ -282,14 +282,14 @@ sdl_parse(Err err, const char *str, int len) {
282
282
  }
283
283
  break;
284
284
  case 's': // scalar
285
- if (ERR_OK != make_scalar(err, &doc, desc, (int)(desc_end - desc))) {
285
+ if (AGOO_ERR_OK != make_scalar(err, &doc, desc, (int)(desc_end - desc))) {
286
286
  return err->code;
287
287
  }
288
288
  break;
289
289
  case 'e': // enum, and extend interface or type
290
290
  if (4 < (doc.end - doc.cur)) {
291
291
  if ('n' == doc.cur[1]) {
292
- if (ERR_OK != make_enum(err, &doc, desc, (int)(desc_end - desc))) {
292
+ if (AGOO_ERR_OK != make_enum(err, &doc, desc, (int)(desc_end - desc))) {
293
293
  return err->code;
294
294
  }
295
295
  break;
@@ -298,14 +298,14 @@ sdl_parse(Err err, const char *str, int len) {
298
298
  break;
299
299
  }
300
300
  }
301
- return doc_err(&doc, err, "Unknown directive");
301
+ return agoo_doc_err(&doc, err, "Unknown directive");
302
302
  case 'u': // union
303
- if (ERR_OK != make_union(err, &doc, desc, (int)(desc_end - desc))) {
303
+ if (AGOO_ERR_OK != make_union(err, &doc, desc, (int)(desc_end - desc))) {
304
304
  return err->code;
305
305
  }
306
306
  break;
307
307
  case 'd': // directive
308
- if (ERR_OK != make_directive(err, &doc, desc, (int)(desc_end - desc))) {
308
+ if (AGOO_ERR_OK != make_directive(err, &doc, desc, (int)(desc_end - desc))) {
309
309
  return err->code;
310
310
  }
311
311
  break;
@@ -321,14 +321,14 @@ sdl_parse(Err err, const char *str, int len) {
321
321
  break;
322
322
  }
323
323
  }
324
- return doc_err(&doc, err, "Unknown directive");
324
+ return agoo_doc_err(&doc, err, "Unknown directive");
325
325
  case 'f': // fragment
326
326
  break;
327
327
  case '\0':
328
- return ERR_OK;
328
+ return AGOO_ERR_OK;
329
329
  default:
330
- return doc_err(&doc, err, "Unknown directive");
330
+ return agoo_doc_err(&doc, err, "Unknown directive");
331
331
  }
332
332
  }
333
- return ERR_OK;
333
+ return AGOO_ERR_OK;
334
334
  }