Avro C++
api
ValidSchema.hh
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_ValidSchema_hh__
20
#define avro_ValidSchema_hh__
21
22
#include "Config.hh"
23
#include "Node.hh"
24
25
namespace
avro
{
26
27
class
AVRO_DECL Schema;
28
39
40
class
AVRO_DECL
ValidSchema
{
41
public
:
42
explicit
ValidSchema
(NodePtr root);
43
explicit
ValidSchema
(
const
Schema
&schema);
44
ValidSchema
();
45
46
void
setSchema(
const
Schema
&schema);
47
48
const
NodePtr &root()
const
{
49
return
root_;
50
}
51
52
void
toJson(std::ostream &os)
const
;
53
std::string toJson(
bool
prettyPrint =
true
)
const
;
54
55
void
toFlatList(std::ostream &os)
const
;
56
57
protected
:
58
NodePtr root_;
59
60
private
:
61
static
std::string compactSchema(
const
std::string &schema);
62
};
63
64
}
// namespace avro
65
66
#endif
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::Schema
The root Schema object is a base class. Nobody constructs this class directly.
Definition:
Schema.hh:36
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
Generated by
1.8.17