// Copyright (C) 2010, Guy Barrand. All rights reserved. // See the file tools.license for terms. #ifndef tools_rroot_ifile #define tools_rroot_ifile #include "seek" #include "../press_func" namespace tools { namespace rroot { class key; class streamer_info; class ifile { public: virtual ~ifile(){} public: virtual const std::string& path() const = 0; virtual bool verbose() const = 0; virtual std::ostream& out() const = 0; virtual bool byte_swap() const = 0; enum from { begin, current, end }; virtual bool set_pos(seek = 0,from = begin) = 0; virtual bool read_buffer(char*,uint32) = 0; virtual bool unziper(char,decompress_func&) const = 0; virtual key& sinfos_key() = 0; virtual streamer_info* find_streamer_info(const std::string&) = 0; }; }} #endif