sq_detailed_metrics 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/extconf.rb +26 -0
  3. data/include/half.hpp +4575 -0
  4. data/include/msgpack.h +24 -0
  5. data/include/msgpack/fbuffer.h +42 -0
  6. data/include/msgpack/gcc_atomic.h +25 -0
  7. data/include/msgpack/object.h +118 -0
  8. data/include/msgpack/pack.h +174 -0
  9. data/include/msgpack/pack_define.h +18 -0
  10. data/include/msgpack/pack_template.h +952 -0
  11. data/include/msgpack/sbuffer.h +115 -0
  12. data/include/msgpack/sysdep.h +221 -0
  13. data/include/msgpack/timestamp.h +58 -0
  14. data/include/msgpack/unpack.h +281 -0
  15. data/include/msgpack/unpack_define.h +89 -0
  16. data/include/msgpack/unpack_template.h +471 -0
  17. data/include/msgpack/util.h +15 -0
  18. data/include/msgpack/version.h +38 -0
  19. data/include/msgpack/version_master.h +3 -0
  20. data/include/msgpack/vrefbuffer.h +144 -0
  21. data/include/msgpack/zbuffer.h +205 -0
  22. data/include/msgpack/zone.h +163 -0
  23. data/include/rapidjson/allocators.h +271 -0
  24. data/include/rapidjson/document.h +2575 -0
  25. data/include/rapidjson/encodedstream.h +299 -0
  26. data/include/rapidjson/encodings.h +716 -0
  27. data/include/rapidjson/error/en.h +74 -0
  28. data/include/rapidjson/error/error.h +155 -0
  29. data/include/rapidjson/filereadstream.h +99 -0
  30. data/include/rapidjson/filewritestream.h +104 -0
  31. data/include/rapidjson/fwd.h +151 -0
  32. data/include/rapidjson/internal/biginteger.h +290 -0
  33. data/include/rapidjson/internal/diyfp.h +258 -0
  34. data/include/rapidjson/internal/dtoa.h +245 -0
  35. data/include/rapidjson/internal/ieee754.h +78 -0
  36. data/include/rapidjson/internal/itoa.h +304 -0
  37. data/include/rapidjson/internal/meta.h +181 -0
  38. data/include/rapidjson/internal/pow10.h +55 -0
  39. data/include/rapidjson/internal/regex.h +701 -0
  40. data/include/rapidjson/internal/stack.h +230 -0
  41. data/include/rapidjson/internal/strfunc.h +55 -0
  42. data/include/rapidjson/internal/strtod.h +269 -0
  43. data/include/rapidjson/internal/swap.h +46 -0
  44. data/include/rapidjson/istreamwrapper.h +115 -0
  45. data/include/rapidjson/memorybuffer.h +70 -0
  46. data/include/rapidjson/memorystream.h +71 -0
  47. data/include/rapidjson/msinttypes/inttypes.h +316 -0
  48. data/include/rapidjson/msinttypes/stdint.h +300 -0
  49. data/include/rapidjson/ostreamwrapper.h +81 -0
  50. data/include/rapidjson/pointer.h +1358 -0
  51. data/include/rapidjson/prettywriter.h +255 -0
  52. data/include/rapidjson/rapidjson.h +615 -0
  53. data/include/rapidjson/reader.h +1879 -0
  54. data/include/rapidjson/schema.h +2006 -0
  55. data/include/rapidjson/stream.h +179 -0
  56. data/include/rapidjson/stringbuffer.h +117 -0
  57. data/include/rapidjson/writer.h +610 -0
  58. data/include/xxhash.h +328 -0
  59. data/json_conv.cpp +284 -0
  60. data/json_conv.hpp +17 -0
  61. data/metrics.cpp +239 -0
  62. data/metrics.hpp +84 -0
  63. data/msgpack/objectc.c +482 -0
  64. data/msgpack/unpack.c +703 -0
  65. data/msgpack/version.c +22 -0
  66. data/msgpack/vrefbuffer.c +250 -0
  67. data/msgpack/zone.c +222 -0
  68. data/sq_detailed_metrics.cpp +248 -0
  69. metadata +199 -0
@@ -0,0 +1,22 @@
1
+ #include "msgpack.h"
2
+
3
+ const char* msgpack_version(void)
4
+ {
5
+ return MSGPACK_VERSION;
6
+ }
7
+
8
+ int msgpack_version_major(void)
9
+ {
10
+ return MSGPACK_VERSION_MAJOR;
11
+ }
12
+
13
+ int msgpack_version_minor(void)
14
+ {
15
+ return MSGPACK_VERSION_MINOR;
16
+ }
17
+
18
+ int msgpack_version_revision(void)
19
+ {
20
+ return MSGPACK_VERSION_REVISION;
21
+ }
22
+
@@ -0,0 +1,250 @@
1
+ /*
2
+ * MessagePack for C zero-copy buffer implementation
3
+ *
4
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
5
+ *
6
+ * Distributed under the Boost Software License, Version 1.0.
7
+ * (See accompanying file LICENSE_1_0.txt or copy at
8
+ * http://www.boost.org/LICENSE_1_0.txt)
9
+ */
10
+ #include "msgpack/vrefbuffer.h"
11
+ #include <stdlib.h>
12
+ #include <string.h>
13
+
14
+ #define MSGPACK_PACKER_MAX_BUFFER_SIZE 9
15
+
16
+ struct msgpack_vrefbuffer_chunk {
17
+ struct msgpack_vrefbuffer_chunk* next;
18
+ /* data ... */
19
+ };
20
+
21
+ bool msgpack_vrefbuffer_init(msgpack_vrefbuffer* vbuf,
22
+ size_t ref_size, size_t chunk_size)
23
+ {
24
+ size_t nfirst;
25
+ struct iovec* array;
26
+ msgpack_vrefbuffer_chunk* chunk;
27
+
28
+ if (ref_size == 0) {
29
+ ref_size = MSGPACK_VREFBUFFER_REF_SIZE;
30
+ }
31
+ if(chunk_size == 0) {
32
+ chunk_size = MSGPACK_VREFBUFFER_CHUNK_SIZE;
33
+ }
34
+ vbuf->chunk_size = chunk_size;
35
+ vbuf->ref_size =
36
+ ref_size > MSGPACK_PACKER_MAX_BUFFER_SIZE + 1 ?
37
+ ref_size : MSGPACK_PACKER_MAX_BUFFER_SIZE + 1 ;
38
+
39
+ if((sizeof(msgpack_vrefbuffer_chunk) + chunk_size) < chunk_size) {
40
+ return false;
41
+ }
42
+
43
+ nfirst = (sizeof(struct iovec) < 72/2) ?
44
+ 72 / sizeof(struct iovec) : 8;
45
+
46
+ array = (struct iovec*)malloc(
47
+ sizeof(struct iovec) * nfirst);
48
+ if(array == NULL) {
49
+ return false;
50
+ }
51
+
52
+ vbuf->tail = array;
53
+ vbuf->end = array + nfirst;
54
+ vbuf->array = array;
55
+
56
+ chunk = (msgpack_vrefbuffer_chunk*)malloc(
57
+ sizeof(msgpack_vrefbuffer_chunk) + chunk_size);
58
+ if(chunk == NULL) {
59
+ free(array);
60
+ return false;
61
+ }
62
+ else {
63
+ msgpack_vrefbuffer_inner_buffer* const ib = &vbuf->inner_buffer;
64
+
65
+ ib->free = chunk_size;
66
+ ib->ptr = ((char*)chunk) + sizeof(msgpack_vrefbuffer_chunk);
67
+ ib->head = chunk;
68
+ chunk->next = NULL;
69
+
70
+ return true;
71
+ }
72
+ }
73
+
74
+ void msgpack_vrefbuffer_destroy(msgpack_vrefbuffer* vbuf)
75
+ {
76
+ msgpack_vrefbuffer_chunk* c = vbuf->inner_buffer.head;
77
+ while(true) {
78
+ msgpack_vrefbuffer_chunk* n = c->next;
79
+ free(c);
80
+ if(n != NULL) {
81
+ c = n;
82
+ } else {
83
+ break;
84
+ }
85
+ }
86
+ free(vbuf->array);
87
+ }
88
+
89
+ void msgpack_vrefbuffer_clear(msgpack_vrefbuffer* vbuf)
90
+ {
91
+ msgpack_vrefbuffer_chunk* c = vbuf->inner_buffer.head->next;
92
+ msgpack_vrefbuffer_chunk* n;
93
+ while(c != NULL) {
94
+ n = c->next;
95
+ free(c);
96
+ c = n;
97
+ }
98
+
99
+ {
100
+ msgpack_vrefbuffer_inner_buffer* const ib = &vbuf->inner_buffer;
101
+ msgpack_vrefbuffer_chunk* chunk = ib->head;
102
+ chunk->next = NULL;
103
+ ib->free = vbuf->chunk_size;
104
+ ib->ptr = ((char*)chunk) + sizeof(msgpack_vrefbuffer_chunk);
105
+
106
+ vbuf->tail = vbuf->array;
107
+ }
108
+ }
109
+
110
+ int msgpack_vrefbuffer_append_ref(msgpack_vrefbuffer* vbuf,
111
+ const char* buf, size_t len)
112
+ {
113
+ if(vbuf->tail == vbuf->end) {
114
+ const size_t nused = (size_t)(vbuf->tail - vbuf->array);
115
+ const size_t nnext = nused * 2;
116
+
117
+ struct iovec* nvec = (struct iovec*)realloc(
118
+ vbuf->array, sizeof(struct iovec)*nnext);
119
+ if(nvec == NULL) {
120
+ return -1;
121
+ }
122
+
123
+ vbuf->array = nvec;
124
+ vbuf->end = nvec + nnext;
125
+ vbuf->tail = nvec + nused;
126
+ }
127
+
128
+ vbuf->tail->iov_base = (char*)buf;
129
+ vbuf->tail->iov_len = len;
130
+ ++vbuf->tail;
131
+
132
+ return 0;
133
+ }
134
+
135
+ int msgpack_vrefbuffer_append_copy(msgpack_vrefbuffer* vbuf,
136
+ const char* buf, size_t len)
137
+ {
138
+ msgpack_vrefbuffer_inner_buffer* const ib = &vbuf->inner_buffer;
139
+ char* m;
140
+
141
+ if(ib->free < len) {
142
+ msgpack_vrefbuffer_chunk* chunk;
143
+ size_t sz = vbuf->chunk_size;
144
+ if(sz < len) {
145
+ sz = len;
146
+ }
147
+
148
+ if((sizeof(msgpack_vrefbuffer_chunk) + sz) < sz){
149
+ return -1;
150
+ }
151
+ chunk = (msgpack_vrefbuffer_chunk*)malloc(
152
+ sizeof(msgpack_vrefbuffer_chunk) + sz);
153
+ if(chunk == NULL) {
154
+ return -1;
155
+ }
156
+
157
+ chunk->next = ib->head;
158
+ ib->head = chunk;
159
+ ib->free = sz;
160
+ ib->ptr = ((char*)chunk) + sizeof(msgpack_vrefbuffer_chunk);
161
+ }
162
+
163
+ m = ib->ptr;
164
+ memcpy(m, buf, len);
165
+ ib->free -= len;
166
+ ib->ptr += len;
167
+
168
+ if(vbuf->tail != vbuf->array && m ==
169
+ (const char*)((vbuf->tail-1)->iov_base) + (vbuf->tail-1)->iov_len) {
170
+ (vbuf->tail-1)->iov_len += len;
171
+ return 0;
172
+ } else {
173
+ return msgpack_vrefbuffer_append_ref(vbuf, m, len);
174
+ }
175
+ }
176
+
177
+ int msgpack_vrefbuffer_migrate(msgpack_vrefbuffer* vbuf, msgpack_vrefbuffer* to)
178
+ {
179
+ size_t sz = vbuf->chunk_size;
180
+ msgpack_vrefbuffer_chunk* empty;
181
+
182
+ if((sizeof(msgpack_vrefbuffer_chunk) + sz) < sz){
183
+ return -1;
184
+ }
185
+
186
+ empty = (msgpack_vrefbuffer_chunk*)malloc(
187
+ sizeof(msgpack_vrefbuffer_chunk) + sz);
188
+ if(empty == NULL) {
189
+ return -1;
190
+ }
191
+
192
+ empty->next = NULL;
193
+
194
+ {
195
+ const size_t nused = (size_t)(vbuf->tail - vbuf->array);
196
+ if(to->tail + nused < vbuf->end) {
197
+ struct iovec* nvec;
198
+ const size_t tosize = (size_t)(to->tail - to->array);
199
+ const size_t reqsize = nused + tosize;
200
+ size_t nnext = (size_t)(to->end - to->array) * 2;
201
+ while(nnext < reqsize) {
202
+ size_t tmp_nnext = nnext * 2;
203
+ if (tmp_nnext <= nnext) {
204
+ nnext = reqsize;
205
+ break;
206
+ }
207
+ nnext = tmp_nnext;
208
+ }
209
+
210
+ nvec = (struct iovec*)realloc(
211
+ to->array, sizeof(struct iovec)*nnext);
212
+ if(nvec == NULL) {
213
+ free(empty);
214
+ return -1;
215
+ }
216
+
217
+ to->array = nvec;
218
+ to->end = nvec + nnext;
219
+ to->tail = nvec + tosize;
220
+ }
221
+
222
+ memcpy(to->tail, vbuf->array, sizeof(struct iovec)*nused);
223
+
224
+ to->tail += nused;
225
+ vbuf->tail = vbuf->array;
226
+
227
+ {
228
+ msgpack_vrefbuffer_inner_buffer* const ib = &vbuf->inner_buffer;
229
+ msgpack_vrefbuffer_inner_buffer* const toib = &to->inner_buffer;
230
+
231
+ msgpack_vrefbuffer_chunk* last = ib->head;
232
+ while(last->next != NULL) {
233
+ last = last->next;
234
+ }
235
+ last->next = toib->head;
236
+ toib->head = ib->head;
237
+
238
+ if(toib->free < ib->free) {
239
+ toib->free = ib->free;
240
+ toib->ptr = ib->ptr;
241
+ }
242
+
243
+ ib->head = empty;
244
+ ib->free = sz;
245
+ ib->ptr = ((char*)empty) + sizeof(msgpack_vrefbuffer_chunk);
246
+ }
247
+ }
248
+
249
+ return 0;
250
+ }
@@ -0,0 +1,222 @@
1
+ /*
2
+ * MessagePack for C memory pool implementation
3
+ *
4
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
5
+ *
6
+ * Distributed under the Boost Software License, Version 1.0.
7
+ * (See accompanying file LICENSE_1_0.txt or copy at
8
+ * http://www.boost.org/LICENSE_1_0.txt)
9
+ */
10
+ #include "msgpack/zone.h"
11
+ #include <stdlib.h>
12
+ #include <string.h>
13
+
14
+ struct msgpack_zone_chunk {
15
+ struct msgpack_zone_chunk* next;
16
+ /* data ... */
17
+ };
18
+
19
+ static inline bool init_chunk_list(msgpack_zone_chunk_list* cl, size_t chunk_size)
20
+ {
21
+ msgpack_zone_chunk* chunk = (msgpack_zone_chunk*)malloc(
22
+ sizeof(msgpack_zone_chunk) + chunk_size);
23
+ if(chunk == NULL) {
24
+ return false;
25
+ }
26
+
27
+ cl->head = chunk;
28
+ cl->free = chunk_size;
29
+ cl->ptr = ((char*)chunk) + sizeof(msgpack_zone_chunk);
30
+ chunk->next = NULL;
31
+
32
+ return true;
33
+ }
34
+
35
+ static inline void destroy_chunk_list(msgpack_zone_chunk_list* cl)
36
+ {
37
+ msgpack_zone_chunk* c = cl->head;
38
+ while(true) {
39
+ msgpack_zone_chunk* n = c->next;
40
+ free(c);
41
+ if(n != NULL) {
42
+ c = n;
43
+ } else {
44
+ break;
45
+ }
46
+ }
47
+ }
48
+
49
+ static inline void clear_chunk_list(msgpack_zone_chunk_list* cl, size_t chunk_size)
50
+ {
51
+ msgpack_zone_chunk* c = cl->head;
52
+ while(true) {
53
+ msgpack_zone_chunk* n = c->next;
54
+ if(n != NULL) {
55
+ free(c);
56
+ c = n;
57
+ } else {
58
+ cl->head = c;
59
+ break;
60
+ }
61
+ }
62
+ cl->head->next = NULL;
63
+ cl->free = chunk_size;
64
+ cl->ptr = ((char*)cl->head) + sizeof(msgpack_zone_chunk);
65
+ }
66
+
67
+ void* msgpack_zone_malloc_expand(msgpack_zone* zone, size_t size)
68
+ {
69
+ msgpack_zone_chunk_list* const cl = &zone->chunk_list;
70
+ msgpack_zone_chunk* chunk;
71
+
72
+ size_t sz = zone->chunk_size;
73
+
74
+ while(sz < size) {
75
+ size_t tmp_sz = sz * 2;
76
+ if (tmp_sz <= sz) {
77
+ sz = size;
78
+ break;
79
+ }
80
+ sz = tmp_sz;
81
+ }
82
+
83
+ chunk = (msgpack_zone_chunk*)malloc(
84
+ sizeof(msgpack_zone_chunk) + sz);
85
+ if (chunk == NULL) {
86
+ return NULL;
87
+ }
88
+ else {
89
+ char* ptr = ((char*)chunk) + sizeof(msgpack_zone_chunk);
90
+ chunk->next = cl->head;
91
+ cl->head = chunk;
92
+ cl->free = sz - size;
93
+ cl->ptr = ptr + size;
94
+
95
+ return ptr;
96
+ }
97
+ }
98
+
99
+
100
+ static inline void init_finalizer_array(msgpack_zone_finalizer_array* fa)
101
+ {
102
+ fa->tail = NULL;
103
+ fa->end = NULL;
104
+ fa->array = NULL;
105
+ }
106
+
107
+ static inline void call_finalizer_array(msgpack_zone_finalizer_array* fa)
108
+ {
109
+ msgpack_zone_finalizer* fin = fa->tail;
110
+ for(; fin != fa->array; --fin) {
111
+ (*(fin-1)->func)((fin-1)->data);
112
+ }
113
+ }
114
+
115
+ static inline void destroy_finalizer_array(msgpack_zone_finalizer_array* fa)
116
+ {
117
+ call_finalizer_array(fa);
118
+ free(fa->array);
119
+ }
120
+
121
+ static inline void clear_finalizer_array(msgpack_zone_finalizer_array* fa)
122
+ {
123
+ call_finalizer_array(fa);
124
+ fa->tail = fa->array;
125
+ }
126
+
127
+ bool msgpack_zone_push_finalizer_expand(msgpack_zone* zone,
128
+ void (*func)(void* data), void* data)
129
+ {
130
+ msgpack_zone_finalizer_array* const fa = &zone->finalizer_array;
131
+ msgpack_zone_finalizer* tmp;
132
+
133
+ const size_t nused = (size_t)(fa->end - fa->array);
134
+
135
+ size_t nnext;
136
+ if(nused == 0) {
137
+ nnext = (sizeof(msgpack_zone_finalizer) < 72/2) ?
138
+ 72 / sizeof(msgpack_zone_finalizer) : 8;
139
+
140
+ } else {
141
+ nnext = nused * 2;
142
+ }
143
+
144
+ tmp = (msgpack_zone_finalizer*)realloc(fa->array,
145
+ sizeof(msgpack_zone_finalizer) * nnext);
146
+ if(tmp == NULL) {
147
+ return false;
148
+ }
149
+
150
+ fa->array = tmp;
151
+ fa->end = tmp + nnext;
152
+ fa->tail = tmp + nused;
153
+
154
+ fa->tail->func = func;
155
+ fa->tail->data = data;
156
+
157
+ ++fa->tail;
158
+
159
+ return true;
160
+ }
161
+
162
+
163
+ bool msgpack_zone_is_empty(msgpack_zone* zone)
164
+ {
165
+ msgpack_zone_chunk_list* const cl = &zone->chunk_list;
166
+ msgpack_zone_finalizer_array* const fa = &zone->finalizer_array;
167
+ return cl->free == zone->chunk_size && cl->head->next == NULL &&
168
+ fa->tail == fa->array;
169
+ }
170
+
171
+
172
+ void msgpack_zone_destroy(msgpack_zone* zone)
173
+ {
174
+ destroy_finalizer_array(&zone->finalizer_array);
175
+ destroy_chunk_list(&zone->chunk_list);
176
+ }
177
+
178
+ void msgpack_zone_clear(msgpack_zone* zone)
179
+ {
180
+ clear_finalizer_array(&zone->finalizer_array);
181
+ clear_chunk_list(&zone->chunk_list, zone->chunk_size);
182
+ }
183
+
184
+ bool msgpack_zone_init(msgpack_zone* zone, size_t chunk_size)
185
+ {
186
+ zone->chunk_size = chunk_size;
187
+
188
+ if(!init_chunk_list(&zone->chunk_list, chunk_size)) {
189
+ return false;
190
+ }
191
+
192
+ init_finalizer_array(&zone->finalizer_array);
193
+
194
+ return true;
195
+ }
196
+
197
+ msgpack_zone* msgpack_zone_new(size_t chunk_size)
198
+ {
199
+ msgpack_zone* zone = (msgpack_zone*)malloc(
200
+ sizeof(msgpack_zone));
201
+ if(zone == NULL) {
202
+ return NULL;
203
+ }
204
+
205
+ zone->chunk_size = chunk_size;
206
+
207
+ if(!init_chunk_list(&zone->chunk_list, chunk_size)) {
208
+ free(zone);
209
+ return NULL;
210
+ }
211
+
212
+ init_finalizer_array(&zone->finalizer_array);
213
+
214
+ return zone;
215
+ }
216
+
217
+ void msgpack_zone_free(msgpack_zone* zone)
218
+ {
219
+ if(zone == NULL) { return; }
220
+ msgpack_zone_destroy(zone);
221
+ free(zone);
222
+ }