43 lines
803 B
Plaintext
43 lines
803 B
Plaintext
// 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
|