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 }
00053
00054 #endif