client-c  0.6.3
kaa_common_schema.h
Go to the documentation of this file.
1 /*
2  * Copyright 2014 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 
26 #include "collections/kaa_list.h"
27 
28 typedef void (*serialize_fn)(avro_writer_t writer, void *data);
29 typedef void* (*deserialize_fn)(avro_reader_t reader);
30 typedef size_t (*get_size_fn)(void *data);
31 typedef void (*destroy_fn)(void *data);
32 
33 typedef struct {
34  uint8_t* buffer;
35  int32_t size;
36 
38 } kaa_bytes_t;
39 
40 typedef struct {
41  char* data;
42 
44 } kaa_string_t;
45 
46 typedef struct {
47  uint8_t type;
48  void *data;
49 
53 } kaa_union_t;
54 
55 kaa_string_t* kaa_string_move_create(const char* data, destroy_fn destroy);
56 kaa_string_t* kaa_string_copy_create(const char* data);
57 void kaa_string_destroy(void *data);
58 void kaa_string_serialize(avro_writer_t writer, void* data);
59 kaa_string_t* kaa_string_deserialize(avro_reader_t reader);
60 size_t kaa_string_get_size(void *data);
61 
62 kaa_bytes_t* kaa_bytes_move_create(const uint8_t* data, size_t data_len, destroy_fn destroy);
63 kaa_bytes_t* kaa_bytes_copy_create(const uint8_t* data, size_t data_len);
64 void kaa_bytes_destroy(void *data);
65 void kaa_bytes_serialize(avro_writer_t writer, void* data);
66 kaa_bytes_t* kaa_bytes_deserialize(avro_reader_t reader);
67 size_t kaa_bytes_get_size(void *data);
68 
69 void kaa_boolean_serialize(avro_writer_t writer, void* data);
70 int8_t* kaa_boolean_deserialize(avro_reader_t reader);
71 
72 void kaa_int_serialize(avro_writer_t writer, void* data);
73 int32_t* kaa_int_deserialize(avro_reader_t reader);
74 
75 void kaa_long_serialize(avro_writer_t writer, void* data);
76 int64_t* kaa_long_deserialize(avro_reader_t reader);
77 size_t kaa_long_get_size(int64_t l);
78 
79 void kaa_array_serialize(avro_writer_t writer, kaa_list_t* array, serialize_fn serialize);
80 kaa_list_t *kaa_array_deserialize(avro_reader_t reader, deserialize_fn deserialize);
81 size_t kaa_array_get_size(kaa_list_t* array, get_size_fn get_size);
82 
83 void kaa_null_serialize(avro_writer_t writer, void*);
84 void* kaa_null_deserialize(avro_reader_t reader);
85 void kaa_null_destroy(void *data);
86 size_t kaa_null_get_size();
87 
88 void kaa_data_destroy(void *data);
89 
90 #ifdef __cplusplus
91 } // extern "C"
92 #endif
93 #endif /* KAA_COMMON_SCHEMA_H_ */
void kaa_null_destroy(void *data)
destroy_fn destroy
int8_t * kaa_boolean_deserialize(avro_reader_t reader)
void kaa_data_destroy(void *data)
void(* destroy_fn)(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)
int32_t * kaa_int_deserialize(avro_reader_t reader)
size_t(* get_size_fn)(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)
get_size_fn get_size
destroy_fn destroy
destroy_fn destroy
void kaa_string_serialize(avro_writer_t writer, void *data)
void kaa_null_serialize(avro_writer_t writer, void *)
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)
kaa_bytes_t * kaa_bytes_move_create(const uint8_t *data, size_t data_len, destroy_fn destroy)
void *(* deserialize_fn)(avro_reader_t reader)
int64_t * kaa_long_deserialize(avro_reader_t reader)
void kaa_bytes_destroy(void *data)
kaa_bytes_t * kaa_bytes_copy_create(const uint8_t *data, size_t data_len)
kaa_string_t * kaa_string_copy_create(const char *data)
uint8_t * buffer
void(* serialize_fn)(avro_writer_t writer, void *data)
kaa_bytes_t * kaa_bytes_deserialize(avro_reader_t reader)
void kaa_bytes_serialize(avro_writer_t writer, 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()
kaa_list_t * kaa_array_deserialize(avro_reader_t reader, deserialize_fn deserialize)
size_t kaa_long_get_size(int64_t l)