client-c  0.7.0
kaa_common_schema.h
Go to the documentation of this file.
1 /*
2  * Copyright 2014-2015 CyberVision, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef KAA_COMMON_SCHEMA_H_
18 #define KAA_COMMON_SCHEMA_H_
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #include "avro_src/avro/io.h"
25 #include "collections/kaa_list.h"
26 
27 
28 
29 /*
30  * Do not change neither name or value of these constants.
31  */
32 #define AVRO_NULL_SIZE 0
33 #define AVRO_FLOAT_SIZE 4
34 #define AVRO_DOUBLE_SIZE 8
35 
36 
37 
38 typedef void (*serialize_fn)(avro_writer_t writer, void *data);
39 typedef void *(*deserialize_fn)();
40 typedef void *(*deserialize_wo_ctx_fn)(avro_reader_t reader);
41 typedef void *(*deserialize_w_ctx_fn)(avro_reader_t reader, void *context);
42 typedef size_t (*get_size_fn)(void *data);
43 typedef void (*destroy_fn)(void *data);
44 
45 
46 
47 typedef struct {
48  uint8_t* buffer;
49  int32_t size;
50 
52 } kaa_bytes_t;
53 
54 typedef struct {
55  char* data;
56 
58 } kaa_string_t;
59 
60 typedef struct {
61  uint8_t type;
62  void *data;
63 
67 } kaa_union_t;
68 
69 
70 
71 kaa_string_t *kaa_string_move_create(const char *data, destroy_fn destroy);
72 kaa_string_t *kaa_string_copy_create(const char *data);
73 
74 void kaa_string_destroy(void *data);
75 void kaa_string_serialize(avro_writer_t writer, void *data);
77 size_t kaa_string_get_size(void *data);
78 
79 
80 
81 kaa_bytes_t *kaa_bytes_move_create(const uint8_t *data, size_t data_len, destroy_fn destroy);
82 kaa_bytes_t *kaa_bytes_copy_create(const uint8_t *data, size_t data_len);
83 
84 void kaa_bytes_destroy(void *data);
85 void kaa_bytes_serialize(avro_writer_t writer, void *data);
87 size_t kaa_bytes_get_size(void *data);
88 
89 
90 
91 kaa_bytes_t *kaa_fixed_move_create(const uint8_t *data, size_t data_len, destroy_fn destroy);
92 kaa_bytes_t *kaa_fixed_copy_create(const uint8_t *data, size_t data_len);
93 
94 void kaa_fixed_destroy(void *data);
95 void kaa_fixed_serialize(avro_writer_t writer, void *data);
96 kaa_bytes_t *kaa_fixed_deserialize(avro_reader_t reader, void *context);
97 size_t kaa_fixed_get_size(void *data);
98 
99 
100 
101 void kaa_boolean_serialize(avro_writer_t writer, void *data);
102 int8_t *kaa_boolean_deserialize(avro_reader_t reader);
103 size_t kaa_boolean_get_size(void *data);
104 
105 
106 
107 void kaa_int_serialize(avro_writer_t writer, void *data);
108 int32_t *kaa_int_deserialize(avro_reader_t reader);
109 size_t kaa_int_get_size(void *data);
110 
111 
112 
113 void kaa_long_serialize(avro_writer_t writer, void *data);
114 int64_t *kaa_long_deserialize(avro_reader_t reader);
115 size_t kaa_long_get_size(void *data);
116 
117 
118 
119 void kaa_enum_serialize(avro_writer_t writer, void *data);
121 size_t kaa_enum_get_size(void *data);
122 
123 
124 
125 void kaa_float_serialize(avro_writer_t writer, void *data);
126 float *kaa_float_deserialize(avro_reader_t reader);
127 size_t kaa_float_get_size(void *data);
128 
129 
130 
131 void kaa_double_serialize(avro_writer_t writer, void *data);
132 double *kaa_double_deserialize(avro_reader_t reader);
133 size_t kaa_double_get_size(void *data);
134 
135 
136 
137 void kaa_array_serialize(avro_writer_t writer, kaa_list_t *array, serialize_fn serialize);
139 kaa_list_t *kaa_array_deserialize_w_ctx(avro_reader_t reader, deserialize_w_ctx_fn deserialize, void *deserialize_context);
140 size_t kaa_array_get_size(kaa_list_t *array, get_size_fn get_size);
141 
142 
143 
144 void kaa_null_serialize(avro_writer_t writer, void *data);
145 void *kaa_null_deserialize(avro_reader_t reader);
146 void kaa_null_destroy(void *data);
147 size_t kaa_null_get_size();
148 
149 void kaa_data_destroy(void *data);
150 
151 size_t avro_long_get_size(int64_t l);
152 
153 #ifdef __cplusplus
154 } // extern "C"
155 #endif
156 #endif /* KAA_COMMON_SCHEMA_H_ */
void kaa_null_destroy(void *data)
size_t kaa_double_get_size(void *data)
destroy_fn destroy
kaa_list_t * kaa_array_deserialize_wo_ctx(avro_reader_t reader, deserialize_wo_ctx_fn deserialize)
int8_t * kaa_boolean_deserialize(avro_reader_t reader)
void kaa_data_destroy(void *data)
kaa_bytes_t * kaa_fixed_copy_create(const uint8_t *data, size_t data_len)
void(* destroy_fn)(void *data)
size_t kaa_int_get_size(void *data)
void kaa_array_serialize(avro_writer_t writer, kaa_list_t *array, serialize_fn serialize)
size_t kaa_array_get_size(kaa_list_t *array, get_size_fn get_size)
double * kaa_double_deserialize(avro_reader_t reader)
int32_t * kaa_int_deserialize(avro_reader_t reader)
size_t(* get_size_fn)(void *data)
void kaa_fixed_serialize(avro_writer_t writer, void *data)
serialize_fn serialize
void kaa_boolean_serialize(avro_writer_t writer, void *data)
void kaa_int_serialize(avro_writer_t writer, void *data)
void kaa_string_destroy(void *data)
kaa_string_t * kaa_string_deserialize(avro_reader_t reader)
void kaa_fixed_destroy(void *data)
get_size_fn get_size
destroy_fn destroy
destroy_fn destroy
void kaa_string_serialize(avro_writer_t writer, void *data)
kaa_bytes_t * kaa_fixed_deserialize(avro_reader_t reader, void *context)
size_t kaa_float_get_size(void *data)
struct kaa_list_t kaa_list_t
Definition: kaa_list.h:28
size_t kaa_bytes_get_size(void *data)
size_t kaa_string_get_size(void *data)
kaa_string_t * kaa_string_move_create(const char *data, destroy_fn destroy)
size_t kaa_enum_get_size(void *data)
kaa_bytes_t * kaa_bytes_move_create(const uint8_t *data, size_t data_len, destroy_fn destroy)
void kaa_double_serialize(avro_writer_t writer, void *data)
int64_t * kaa_long_deserialize(avro_reader_t reader)
void *(* deserialize_w_ctx_fn)(avro_reader_t reader, void *context)
void *(* deserialize_wo_ctx_fn)(avro_reader_t reader)
void kaa_enum_serialize(avro_writer_t writer, void *data)
void kaa_bytes_destroy(void *data)
kaa_bytes_t * kaa_bytes_copy_create(const uint8_t *data, size_t data_len)
void kaa_null_serialize(avro_writer_t writer, void *data)
kaa_string_t * kaa_string_copy_create(const char *data)
uint8_t * buffer
size_t kaa_long_get_size(void *data)
kaa_list_t * kaa_array_deserialize_w_ctx(avro_reader_t reader, deserialize_w_ctx_fn deserialize, void *deserialize_context)
kaa_bytes_t * kaa_fixed_move_create(const uint8_t *data, size_t data_len, destroy_fn destroy)
void kaa_float_serialize(avro_writer_t writer, void *data)
size_t avro_long_get_size(int64_t l)
size_t kaa_fixed_get_size(void *data)
void(* serialize_fn)(avro_writer_t writer, void *data)
kaa_bytes_t * kaa_bytes_deserialize(avro_reader_t reader)
int * kaa_enum_deserialize(avro_reader_t reader)
void kaa_bytes_serialize(avro_writer_t writer, void *data)
size_t kaa_boolean_get_size(void *data)
void kaa_long_serialize(avro_writer_t writer, void *data)
void * kaa_null_deserialize(avro_reader_t reader)
size_t kaa_null_get_size()
float * kaa_float_deserialize(avro_reader_t reader)