Avro C++

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:37
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