ValidSchema.hh
00001
00019 #ifndef avro_ValidSchema_hh__
00020 #define avro_ValidSchema_hh__
00021
00022 #include <boost/noncopyable.hpp>
00023
00024 #include "Node.hh"
00025
00026 namespace avro {
00027
00028 class Schema;
00029 class SymbolMap;
00030
00041
00042 class ValidSchema : private boost::noncopyable
00043 {
00044 public:
00045
00046 explicit ValidSchema(const Schema &schema);
00047 ValidSchema();
00048
00049 void setSchema(const Schema &schema);
00050
00051 const NodePtr &root() const {
00052 return root_;
00053 }
00054
00055 void toJson(std::ostream &os) const;
00056
00057 void toFlatList(std::ostream &os) const;
00058
00059 protected:
00060
00061 bool validate(const NodePtr &node, SymbolMap &symbolMap);
00062
00063 NodePtr root_;
00064 };
00065
00066 }
00067
00068 #endif