Avro C++

Resolver.hh
Go to the documentation of this file.
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * https://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 #ifndef avro_Resolver_hh__
20 #define avro_Resolver_hh__
21
22 #include <boost/noncopyable.hpp>
23 #include <cstdint>
24 #include <memory>
25
26 #include "Config.hh"
27 #include "Reader.hh"
28
31
32 namespace avro {
33
34 class ValidSchema;
35 class Layout;
36
37 class AVRO_DECL Resolver : private boost::noncopyable {
38 public:
39 virtual void parse(Reader &reader, uint8_t *address) const = 0;
40 virtual ~Resolver() = default;
41 };
42
43 std::unique_ptr<Resolver> constructResolver(
44 const ValidSchema &writerSchema,
45 const ValidSchema &readerSchema,
46 const Layout &readerLayout);
47
48 } // namespace avro
49
50 #endif
avro::Resolver
Definition: Resolver.hh:37
avro::parse
void parse(Reader &p, T &val)
The main parse entry point function.
Definition: AvroParse.hh:36
avro
A bunch of templates and specializations for encoding and decoding specific types.
Definition: AvroParse.hh:30
avro::ValidSchema
A ValidSchema is basically a non-mutable Schema that has passed some minimum of sanity checks.
Definition: ValidSchema.hh:40
avro::ReaderImpl< NullValidator >
avro::ValidSchema
class AVRO_DECL ValidSchema
This class is used to implement an avro spec parser using a flex/bison compiler.
Definition: Compiler.hh:35
avro::Layout
Definition: Layout.hh:30