UGDK  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
file.h
Go to the documentation of this file.
1 #ifndef UGDK_FILESYSTEM_FILE_H_
2 #define UGDK_FILESYSTEM_FILE_H_
3 
4 #include <ugdk/filesystem.h>
5 #include <ugdk/structure/types.h>
6 #include <cstddef>
7 #include <string>
8 
9 namespace ugdk {
10 namespace filesystem {
11 
12 enum class SeekPositions {
14 };
15 
16 class File {
17  public:
18  virtual ~File() {}
19 
26  virtual std::string filename() const = 0;
27 
31  virtual int64 size() const = 0;
32 
39  virtual int64 Seek(int64 offset, SeekPositions whence) = 0;
40 
45  int64 Tell();
46 
54  virtual std::size_t ReadRaw(void* ptr, std::size_t size, std::size_t maxnum) = 0;
55 
63  template <class T>
64  std::size_t Read(T* ptr, std::size_t maxnum = 1) {
65  return ReadRaw(ptr, sizeof(T), maxnum);
66  }
67 
75  virtual std::size_t WriteRaw(const void* ptr, std::size_t size, std::size_t num) = 0;
76 
84  template <class T>
85  std::size_t Write(const T* ptr, std::size_t num = 1) {
86  return WriteRaw(ptr, sizeof(T), num);
87  }
88 
93  virtual bool Close() = 0;
94 
99  std::string GetContents();
100 
104  bool CanSeek();
105 
110  int fgetc();
111 
120  char* fgets(char* str, int count);
121 
122  protected:
123  File() {}
124 };
125 
126 } // namespace filesystem
127 } // namespace ugdk
128 
129 #endif // UGDK_FILESYSTEM_FILE_H_
std::size_t Read(T *ptr, std::size_t maxnum=1)
Definition: file.h:64
int64_t int64
Definition: types.h:19
virtual std::size_t ReadRaw(void *ptr, std::size_t size, std::size_t maxnum)=0
virtual int64 Seek(int64 offset, SeekPositions whence)=0
virtual bool Close()=0
virtual std::string filename() const =0
std::string GetContents()
Definition: animation.h:11
Definition: file.h:16
char * fgets(char *str, int count)
SeekPositions
Definition: file.h:12
std::size_t Write(const T *ptr, std::size_t num=1)
Definition: file.h:85
virtual ~File()
Definition: file.h:18
virtual std::size_t WriteRaw(const void *ptr, std::size_t size, std::size_t num)=0
virtual int64 size() const =0
File()
Definition: file.h:123