00001 00020 #ifndef avro_ResolvingReader_hh__ 00021 #define avro_ResolvingReader_hh__ 00022 00023 #include <stdint.h> 00024 #include <boost/noncopyable.hpp> 00025 00026 #include "ResolverSchema.hh" 00027 #include "Reader.hh" 00028 00029 namespace avro { 00030 00031 class ResolvingReader : private boost::noncopyable 00032 { 00033 00034 public: 00035 00036 ResolvingReader(const ResolverSchema &schema, const InputBuffer &in) : 00037 reader_(in), 00038 schema_(schema) 00039 {} 00040 00041 template<typename T> 00042 void parse(T &object) { 00043 schema_.parse(reader_, reinterpret_cast<uint8_t *>(&object)); 00044 } 00045 00046 private: 00047 00048 Reader reader_; 00049 ResolverSchema schema_; 00050 }; 00051 00052 } // namespace avro 00053 00054 #endif