Vector BLF
AbstractFile.h
1 /*
2  * Copyright (C) 2013 Tobias Lorenz.
3  * Contact: tobias.lorenz@gmx.net
4  *
5  * This file is part of Tobias Lorenz's Toolkit.
6  *
7  * Commercial License Usage
8  * Licensees holding valid commercial licenses may use this file in
9  * accordance with the commercial license agreement provided with the
10  * Software or, alternatively, in accordance with the terms contained in
11  * a written agreement between you and Tobias Lorenz.
12  *
13  * GNU General Public License 3.0 Usage
14  * Alternatively, this file may be used under the terms of the GNU
15  * General Public License version 3.0 as published by the Free Software
16  * Foundation and appearing in the file LICENSE.GPL included in the
17  * packaging of this file. Please review the following information to
18  * ensure the GNU General Public License version 3.0 requirements will be
19  * met: http://www.gnu.org/copyleft/gpl.html.
20  */
21 
22 #pragma once
23 
24 #include <Vector/BLF/platform.h>
25 
26 #include <ios>
27 
28 #include <Vector/BLF/vector_blf_export.h>
29 
30 namespace Vector {
31 namespace BLF {
32 
36 struct VECTOR_BLF_EXPORT AbstractFile {
37  AbstractFile() noexcept = default;
38  virtual ~AbstractFile() noexcept = default;
39  AbstractFile(const AbstractFile &) = default;
40  AbstractFile & operator=(const AbstractFile &) = default;
41  AbstractFile(AbstractFile &&) = default;
42  AbstractFile & operator=(AbstractFile &&) = default;
43 
49  virtual std::streamsize gcount() const = 0;
50 
59  virtual void read(char * s, std::streamsize n) = 0;
60 
66  virtual std::streampos tellg() = 0;
67 
74  virtual void seekg(std::streamoff off, const std::ios_base::seekdir way = std::ios_base::cur) = 0;
75 
82  virtual void write(const char * s, std::streamsize n) = 0;
83 
89  virtual std::streampos tellp() = 0;
90 
96  virtual bool good() const = 0;
97 
103  virtual bool eof() const = 0;
104 
110  virtual void skipp(std::streamsize s) final;
111 };
112 
113 }
114 }
Definition: AbstractFile.h:36
virtual void seekg(std::streamoff off, const std::ios_base::seekdir way=std::ios_base::cur)=0
virtual std::streampos tellg()=0
virtual std::streamsize gcount() const =0
virtual bool good() const =0
virtual bool eof() const =0
virtual void write(const char *s, std::streamsize n)=0
virtual std::streampos tellp()=0
virtual void read(char *s, std::streamsize n)=0