Permalink
Browse files

AVRO-344. Complete rewrite of C implementation

git-svn-id: https://svn.apache.org/repos/asf/hadoop/avro/trunk@899870 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information...
1 parent 91afe77 commit bbf437e11f1b6ccd16f3bc79cd09af077dc0f638 Matthew Lee Massie committed Jan 16, 2010
Showing with 24,690 additions and 12,970 deletions.
  1. +2 −0 CHANGES.txt
  2. +22 −0 LICENSE.txt
  3. +4 −0 NOTICE.txt
  4. +1 −1 README.txt
  5. +3 −1 build.sh
  6. +6 −88 lang/c/Makefile.am
  7. +0 −6 lang/c/README
  8. +0 −48 lang/c/avro.c
  9. +0 −107 lang/c/avro.h
  10. +0 −300 lang/c/avro_private.c
  11. +0 −229 lang/c/avro_private.h
  12. +60 −0 lang/c/build.sh
  13. +10 −43 lang/c/configure.in
  14. +0 −263 lang/c/datatypes/array.c
  15. +0 −146 lang/c/datatypes/boolean.c
  16. +0 −160 lang/c/datatypes/bytes.c
  17. +0 −111 lang/c/datatypes/decorator.c
  18. +0 −118 lang/c/datatypes/double.c
  19. +0 −182 lang/c/datatypes/enum.c
  20. +0 −165 lang/c/datatypes/fixed.c
  21. +0 −118 lang/c/datatypes/float.c
  22. +0 −126 lang/c/datatypes/int.c
  23. +0 −126 lang/c/datatypes/long.c
  24. +0 −265 lang/c/datatypes/map.c
  25. +0 −72 lang/c/datatypes/null.c
  26. +0 −371 lang/c/datatypes/primitives.c
  27. +0 −312 lang/c/datatypes/record.c
  28. +0 −150 lang/c/datatypes/string.c
  29. +0 −195 lang/c/datatypes/union.c
  30. +6 −0 lang/c/docs/Makefile.am
  31. +0 −24 lang/c/docs/doxygen.conf
  32. +47 −0 lang/c/docs/index.txt
  33. +0 −119 lang/c/io/file.c
  34. +0 −215 lang/c/io/file_container.c
  35. +0 −130 lang/c/io/memory.c
  36. +0 −137 lang/c/io/socket.c
  37. +71 −0 lang/c/jansson/CHANGES
  38. +19 −0 lang/c/jansson/LICENSE
  39. +7 −0 lang/c/jansson/Makefile.am
  40. +63 −0 lang/c/jansson/README.rst
  41. +1,561 −0 lang/c/jansson/config.guess
  42. +1,686 −0 lang/c/jansson/config.sub
  43. +29 −0 lang/c/jansson/configure.ac
  44. +630 −0 lang/c/jansson/depcomp
  45. +7 −0 lang/c/jansson/doc/Makefile.am
  46. +5 −0 lang/c/jansson/doc/README
  47. +610 −0 lang/c/jansson/doc/apiref.rst
  48. +191 −0 lang/c/jansson/doc/conf.py
  49. +59 −0 lang/c/jansson/doc/ext/refcounting.py
  50. +104 −0 lang/c/jansson/doc/gettingstarted.rst
  51. +171 −0 lang/c/jansson/doc/github_commits.c
  52. +44 −0 lang/c/jansson/doc/index.rst
  53. +275 −0 lang/c/jansson/doc/tutorial.rst
  54. +519 −0 lang/c/jansson/install-sh
  55. +8,413 −0 lang/c/jansson/ltmain.sh
  56. +376 −0 lang/c/jansson/missing
  57. +20 −0 lang/c/jansson/src/Makefile.am
  58. +321 −0 lang/c/jansson/src/dump.c
  59. +339 −0 lang/c/jansson/src/hashtable.c
  60. +188 −0 lang/c/jansson/src/hashtable.h
  61. +154 −0 lang/c/jansson/src/jansson.h
  62. +55 −0 lang/c/jansson/src/jansson_private.h
  63. +885 −0 lang/c/jansson/src/load.c
  64. +95 −0 lang/c/jansson/src/strbuffer.c
  65. +31 −0 lang/c/jansson/src/strbuffer.h
  66. +159 −0 lang/c/jansson/src/utf.c
  67. +18 −0 lang/c/jansson/src/utf.h
  68. +13 −0 lang/c/jansson/src/util.h
  69. +676 −0 lang/c/jansson/src/value.c
  70. +22 −0 lang/c/jansson/test/Makefile.am
  71. +45 −0 lang/c/jansson/test/json-compare.py
  72. +31 −0 lang/c/jansson/test/load_file_dump_file.c
  73. +33 −0 lang/c/jansson/test/loadf_dumpf.c
  74. +47 −0 lang/c/jansson/test/loads_dumps.c
  75. +57 −0 lang/c/jansson/test/run-test
  76. +68 −0 lang/c/jansson/test/split-testfile.py
  77. +46 −0 lang/c/jansson/test/test-api
  78. +27 −0 lang/c/jansson/test/test-invalid
  79. +34 −0 lang/c/jansson/test/test-valid
  80. +1 −0 lang/c/jansson/test/testdata/Makefile.am
  81. +235 −0 lang/c/jansson/test/testdata/invalid
  82. +235 −0 lang/c/jansson/test/testdata/invalid-strip
  83. +90 −0 lang/c/jansson/test/testdata/invalid-unicode
  84. +68 −0 lang/c/jansson/test/testdata/valid
  85. +68 −0 lang/c/jansson/test/testdata/valid-strip
  86. +12 −0 lang/c/jansson/test/testprogs/Makefile.am
  87. +400 −0 lang/c/jansson/test/testprogs/test_array.c
  88. +24 −0 lang/c/jansson/test/testprogs/test_load.c
  89. +44 −0 lang/c/jansson/test/testprogs/test_number.c
  90. +298 −0 lang/c/jansson/test/testprogs/test_object.c
  91. +127 −0 lang/c/jansson/test/testprogs/test_simple.c
  92. +20 −0 lang/c/jansson/test/testprogs/util.h
  93. +0 −293 lang/c/json/json.c
  94. +0 −80 lang/c/json/json.h
  95. +0 −1,041 lang/c/json/json_parser.c
  96. +0 −11 lang/c/json/json_parser.h
  97. +0 −121 lang/c/json/json_parser.y
  98. +0 −194 lang/c/json/json_tokenizer.c
  99. +0 −4,889 lang/c/json/lemon.c
  100. +0 −842 lang/c/json/lempar.c
  101. +15 −0 lang/c/src/Makefile.am
  102. +209 −0 lang/c/src/avro.h
  103. +4 −23 lang/c/{json/json_tokenizer.h → src/container_of.h}
  104. +533 −0 lang/c/src/datum.c
  105. +84 −0 lang/c/src/datum.h
  106. 0 lang/c/{util → src}/dump.c
  107. 0 lang/c/{util → src}/dump.h
  108. +72 −0 lang/c/src/encoding.h
  109. +363 −0 lang/c/src/encoding_binary.c
  110. +267 −0 lang/c/src/io.c
  111. +557 −0 lang/c/src/queue.h
  112. +907 −0 lang/c/src/schema.c
  113. +122 −0 lang/c/src/schema.h
  114. +196 −0 lang/c/src/schema_equal.c
  115. +223 −0 lang/c/src/schema_printf.c
  116. +248 −0 lang/c/src/schema_specific.c
  117. +616 −0 lang/c/src/st.c
  118. +73 −0 lang/c/src/st.h
  119. +21 −0 lang/c/tests/Makefile.am
  120. +0 −7 lang/c/tests/json_tests/README
  121. +0 −1 lang/c/tests/json_tests/fail/array_not_closed
  122. +0 −1 lang/c/tests/json_tests/fail/array_not_opened
  123. +0 −1 lang/c/tests/json_tests/fail/bad_value
  124. +0 −1 lang/c/tests/json_tests/fail/colon_instead_of_comma
  125. +0 −1 lang/c/tests/json_tests/fail/comma_after_close
  126. +0 −1 lang/c/tests/json_tests/fail/comma_instead_of_colon
  127. +0 −1 lang/c/tests/json_tests/fail/double_colon
  128. +0 −1 lang/c/tests/json_tests/fail/extra_close
  129. +0 −1 lang/c/tests/json_tests/fail/extra_data_after_object
  130. +0 −1 lang/c/tests/json_tests/fail/illegal_expression
  131. +0 −1 lang/c/tests/json_tests/fail/illegal_invocation
  132. +0 −1 lang/c/tests/json_tests/fail/invalid_number
  133. +0 −1 lang/c/tests/json_tests/fail/invalid_number2
  134. +0 −1 lang/c/tests/json_tests/fail/invalid_number3
  135. +0 −1 lang/c/tests/json_tests/fail/invalid_number4
  136. +0 −1 lang/c/tests/json_tests/fail/json_text_not_array_or_object
  137. +0 −2 lang/c/tests/json_tests/fail/line_break_in_string
  138. +0 −2 lang/c/tests/json_tests/fail/line_break_in_string2
  139. +0 −1 lang/c/tests/json_tests/fail/missing_colon
  140. +0 −1 lang/c/tests/json_tests/fail/naked_array_value
  141. +0 −1 lang/c/tests/json_tests/fail/object_array_mismatch
  142. +0 −1 lang/c/tests/json_tests/fail/object_malformed
  143. +0 −1 lang/c/tests/json_tests/fail/object_not_closed
  144. +0 −1 lang/c/tests/json_tests/fail/object_not_opened
  145. +0 −1 lang/c/tests/json_tests/fail/object_with_string
  146. +0 −1 lang/c/tests/json_tests/fail/object_without_one_value
  147. +0 −1 lang/c/tests/json_tests/fail/single_quote
  148. +0 −2 lang/c/tests/json_tests/fail/string_bad_u1_value
  149. +0 −2 lang/c/tests/json_tests/fail/string_bad_u2_value
  150. +0 −2 lang/c/tests/json_tests/fail/string_bad_u3_value
  151. +0 −2 lang/c/tests/json_tests/fail/string_bad_u4_value
  152. +0 −1 lang/c/tests/json_tests/fail/string_illegal_escape
  153. +0 −1 lang/c/tests/json_tests/fail/tab_char_in_string
  154. +0 −1 lang/c/tests/json_tests/fail/tab_character_in_string
  155. +0 −1 lang/c/tests/json_tests/fail/unquoted_object_key
  156. +0 −1 lang/c/tests/json_tests/pass/array_multidimensional
  157. +0 −1 lang/c/tests/json_tests/pass/array_with_false
  158. +0 −1 lang/c/tests/json_tests/pass/array_with_ints
  159. +0 −1 lang/c/tests/json_tests/pass/array_with_null
  160. +0 −2 lang/c/tests/json_tests/pass/array_with_objects
  161. +0 −1 lang/c/tests/json_tests/pass/array_with_string
  162. +0 −1 lang/c/tests/json_tests/pass/array_with_true
  163. +0 −1 lang/c/tests/json_tests/pass/deep
  164. +0 −1 lang/c/tests/json_tests/pass/empty_array
  165. +0 −1 lang/c/tests/json_tests/pass/empty_object
  166. +0 −88 lang/c/tests/json_tests/pass/json_org_example1
  167. +0 −26 lang/c/tests/json_tests/pass/json_org_example2
  168. +0 −23 lang/c/tests/json_tests/pass/json_org_example3
  169. +0 −58 lang/c/tests/json_tests/pass/json_org_test1
  170. +0 −3 lang/c/tests/json_tests/pass/object_with_duplicate_keys
  171. +0 −1 lang/c/tests/json_tests/pass/object_with_false
  172. +0 −4 lang/c/tests/json_tests/pass/object_with_multiple_members
  173. +0 −1 lang/c/tests/json_tests/pass/object_with_null
  174. +0 −1 lang/c/tests/json_tests/pass/object_with_object_member
  175. +0 −1 lang/c/tests/json_tests/pass/object_with_one_member
  176. +0 −1 lang/c/tests/json_tests/pass/object_with_true
  177. +0 −22 lang/c/tests/json_tests/pass/rfc_example
  178. +0 −13 lang/c/tests/json_tests/pass/rfc_example2
  179. +0 −1 lang/c/tests/json_tests/pass/string_u_value
  180. +3 −0 lang/c/tests/schema_tests/fail/invalid_avro_id
  181. +7 −0 lang/c/tests/schema_tests/fail/record_with_invalid_reference
  182. +1 −1 lang/c/tests/schema_tests/pass/enum
  183. +28 −0 lang/c/tests/schema_tests/pass/interop.avsc
  184. +1 −0 lang/c/tests/schema_tests/pass/string_extra_attributes
  185. +90 −259 lang/c/tests/test_avro_data.c
  186. +58 −28 lang/c/tests/test_avro_schema.c
  187. +0 −125 lang/c/tests/test_json_parser.c
  188. +0 −19 lang/c/util/avro_type.gperf
  189. +0 −51 lang/c/util/container_of.h
  190. +0 −180 lang/c/util/endian.c
  191. +0 −130 lang/c/util/error.c
  192. +0 −48 lang/c/util/error.h
  193. +5 −5 lang/c/version.sh
View
@@ -30,6 +30,8 @@ Trunk (unreleased changes)
AVRO-163. Re-organized source tree into separate directories for
each language. (cutting)
+ AVRO-344. Complete rewrite of C implementation (massie)
+
NEW FEATURES
AVRO-151. Validating Avro schema parser for C (massie)
View
@@ -200,3 +200,25 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+License for the Jansson C JSON parser used in the C implementation:
+
+Copyright (c) 2009 Petri Lehtinen <petri@digip.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
View
@@ -3,3 +3,7 @@ Copyright 2010 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
+
+C JSON parsing provided by Jansson and
+written by Petri Lehtinen. The original software is
+available from http://www.digip.org/jansson/.
View
@@ -10,7 +10,7 @@ The following packages must be installed before Avro can be built:
- Java: JDK 1.6
- Python: 2.5 or greater
- - C: gcc, automake, libtool, libapr1-dev, libaprutil1-dev, doxygen
+ - C: gcc, autoconf, automake, libtool, asciidoc
- C++: g++, flex, bison, libboost-dev
- Apache Ant 1.7
- Apache Forrest 0.8 (for documentation, requires Java 1.5)
View
@@ -32,7 +32,7 @@ case "$target" in
# run lang-specific tests
(cd lang/java; ant test)
(cd lang/py; ant test)
- # (cd lang/c; make test)
+ (cd lang/c; ./build.sh test)
# (cd lang/c++; make test)
# create interop test data
@@ -67,6 +67,7 @@ case "$target" in
(cd lang/py; ant dist)
# (cd lang/c; make dist)
+ (cd lang/c; ./build.sh dist)
# (cd lang/c++; make dist)
@@ -84,6 +85,7 @@ case "$target" in
(cd lang/py; ant clean)
# (cd lang/c; make clean)
+ (cd lang/c; ./build.sh clean)
# (cd lang/c++; make clean)
;;
View
@@ -1,90 +1,8 @@
-# -pedantic
-AM_CFLAGS=$(APR_CFLAGS) $(APR_INCLUDES) $(APU_INCLUDES) -Wall
-ACLOCAL_AMFLAGS=-I m4
+EXTRA_DIST=version.sh m4
+SUBDIRS = docs jansson src tests
-C_DOCS_OUTPUT ?= "docs/dox"
-
-EXTRA_DIST=json/json_parser.y json/lemon.c json/lempar.c \
-tests/json_tests tests/schema_tests docs version.sh m4
-
-include_HEADERS = avro.h
-
-lib_LTLIBRARIES = libavro.la
-libavro_la_SOURCES = avro.h avro_private.h avro.c avro_private.c \
-json/json_parser.c json/json_parser.h json/json_tokenizer.c \
-json/json.c json/json.h json/json_tokenizer.h \
-util/dump.c util/dump.h util/error.c util/error.h \
-util/container_of.h util/endian.c \
-datatypes/array.c datatypes/boolean.c datatypes/bytes.c datatypes/double.c \
-datatypes/enum.c datatypes/fixed.c datatypes/float.c datatypes/int.c datatypes/long.c \
-datatypes/map.c datatypes/null.c datatypes/record.c datatypes/string.c datatypes/union.c \
-datatypes/decorator.c datatypes/primitives.c \
-io/file.c io/socket.c io/memory.c io/file_container.c
-libavro_la_LDFLAGS = \
- -version-info $(LIBAVRO_VERSION) \
- -release $(VERSION) \
- -export-dynamic
-
-noinst_PROGRAMS=test_avro_interop
-check_PROGRAMS=test_json_parser test_avro_schema test_avro_data
-
-dist-hook: docs
-
-test_LDADD=$(APR_LIBS) $(APU_LIBS) $(top_builddir)/libavro.la
-
-test_json_parser_SOURCES=tests/test_json_parser.c
-test_json_parser_LDADD=$(test_LDADD)
-
-test_avro_schema_SOURCES=tests/test_avro_schema.c
-test_avro_schema_LDADD=$(test_LDADD)
-
-test_avro_data_SOURCES=tests/test_avro_data.c
-test_avro_data_LDADD=$(test_LDADD)
-# use -std=c99 to avoid warnings about universal character names
-test_avro_data_CFLAGS=$(AM_CFLAGS) -std=c99
-
-test_avro_interop_SOURCES=tests/test_avro_interop.c
-test_avro_interop_LDADD=$(test_LDADD)
-
-TESTS=$(check_PROGRAMS)
-
-# Run indent on all files.
-# NOTE: Don't indent avro.h (messes up docs) or lemon.c,lempar.c (messes up parser)
pretty:
- pushd $(top_srcdir); \
- for path in $$(find . -name "*.[c,h]"); \
- do \
- file=$$(basename $$path); \
- if [ $$file = "avro.h" -o $$file = "lemon.c" -o $$file = "lempar.c" -o $$file = "json_parser.c" ]; then \
- continue;\
- fi;\
- indent $$path; \
- done;\
- popd;
-
-docs:
- pushd $(top_srcdir); \
- (cat docs/doxygen.conf; echo "OUTPUT_DIRECTORY=$(C_DOCS_OUTPUT)")| doxygen - ;\
- popd;
-
-
-.PHONY: docs
-
-CLEANFILES=$(top_srcdir)/*~ $(top_srcdir)/**/*~ trace.txt json_parser.out lemon
-
-
-# We don't need to auto-generate the json parser code each time. It makes
-# the build overly complicated and isn't required since the json parser
-# doesn't require frequent updates
-#
-#lemon: $(top_srcdir)/lemon.c $(top_srcdir)/lempar.c
-# $(CC) -o $@ $(top_srcdir)/lemon.c
-# -cp $(top_srcdir)/lempar.c .
-#
-#json_parser.c json_parser.h: $(top_srcdir)/json_parser.y lemon
-# -cp $(top_srcdir)/json_parser.y .
-# ./lemon json_parser.y
-#
-# Make sure to generate the json_parser in the source directory before distribution
-#dist-hook: json_parser.h json_parser.c
-# @[ $(top_srcdir) = $(top_builddir) ] || rm -f json_parser.y lempar.c json_parser.c json_parser.h
+ @for dir in src tests; do \
+ indent $(top_srcdir)/$$dir/*.[c,h]; \
+ mv $(top_srcdir)/$$dir/*~ /tmp; \
+ done
View
@@ -6,9 +6,3 @@
======================================================
Please see the documentation in the "docs" directory.
-
-Documentation can also be (re)generated by running...
-
-$ make docs
-
-
View
@@ -1,48 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-
-#include "avro.h"
-#include "avro_private.h"
-#include <locale.h>
-
-avro_status_t
-avro_value_type (avro_value value, avro_type_t * type)
-{
- if (!value || !type)
- {
- return AVRO_FAILURE;
- }
- *type = value->type;
- return AVRO_OK;
-}
-
-avro_status_t
-avro_initialize (void)
-{
- apr_initialize ();
- atexit (apr_terminate);
-
- /* Set the locale to UTF-8 */
- if (!setlocale (LC_CTYPE, "en_US.UTF-8"))
- {
- return AVRO_FAILURE;
- }
-
- return AVRO_OK;
-}
View
@@ -1,107 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-
-#ifndef AVRO_H
-#define AVRO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <wchar.h>
-#include <stdint.h>
-
-/**
-@mainpage
-
-The C implementation of the Avro Spec is currently <em>incomplete</em> without a public API. It
-is not ready for production use.
-
-
-*/
-
-
-/**
-@file avro.h
-@brief AVRO API
-*/
-
-/**
-@defgroup AVRO Avro C API
-@{
-*/
-
-/**
-Avro status enum.
-Enum used by Avro functions to return state.
-@todo expand the number of states
-*/
-enum avro_status
-{
- AVRO_OK = 0, /**< Function success */
- AVRO_FAILURE = 1 /**< Function failure */
-};
-typedef enum avro_status avro_status_t;
-
-/** Initialize the AVRO library
-@return The Avro status
-*/
-avro_status_t avro_initialize(void);
-
-/**
-* @defgroup generic_routines AVRO Generic API
-* @ingroup AVRO
-* @{
-*/
-
-/**
-Avro types.
-*/
-enum avro_type
-{
- AVRO_STRING, /**< string primitive */
- AVRO_BYTES, /**< bytes primitive */
- AVRO_INT, /**< int primitive */
- AVRO_LONG, /**< long primitive */
- AVRO_FLOAT, /**< float primitive */
- AVRO_DOUBLE, /**< double primitive */
- AVRO_BOOLEAN,/**< boolean primitive */
- AVRO_NULL, /**< null primitive */
- AVRO_RECORD, /**< complex record */
- AVRO_ENUM, /**< complex enum */
- AVRO_FIXED, /**< complex fixed value */
- AVRO_MAP, /**< complex map */
- AVRO_ARRAY, /**< complex array */
- AVRO_UNION, /**< complex union */
- /* NOTE: AVRO_NUM_TYPES must always be last */
- AVRO_NUM_TYPES /**< number of avro types */
-};
-typedef enum avro_type avro_type_t;
-
-typedef struct avro_value * avro_value;
-
-avro_status_t avro_initialize (void);
-
-avro_status_t avro_value_type(avro_value value, avro_type_t *type);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ifdef AVRO_H */
Oops, something went wrong. Retry.

0 comments on commit bbf437e

Please sign in to comment.