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 } // namespace avro
00067 
00068 #endif
Generated on Mon Jun 7 02:59:20 2010 for Avro C++ by  doxygen 1.6.3