10 #define FILESEEKSTART 0 12 #define FILESEEKCURRENT 1 17 typedef UINT_PTR SOCKET;
54 const File& operator = (
const File&) =
delete;
56 bool Open(
const char*,
int openmode =
FILEREAD | FILEWRITE);
75 bool Seek(
int amount,
int from = FILESEEKCURRENT);
83 bool ReadData(
void*,
int size);
84 bool WriteData(
const void*,
int size);
138 template <
class type>
140 template <
class type>
141 bool WriteFile(
File& f,
const type& t) {
return t.Write(f); }
143 template <
class type>
144 bool ReadArrayFile(
File& f, type* t,
int n)
151 template <
class type>
152 bool WriteArrayFile(
File& f,
const type* t,
int n)
159 #define _DECLARE_READ_WRITE_FILE_BASIC(type) \ 160 template <> bool ReadFile(File& f, type& t); \ 161 template <> bool WriteFile(File& f, const type& t); \ 162 template <> bool ReadArrayFile(File& f, type* t,int n); \ 163 template <> bool WriteArrayFile(File& f, const type* t,int n); 165 #define _DEFINE_READ_WRITE_FILE_BASIC(type) \ 166 template <> bool ReadFile(File& f, type& t) \ 167 { return f.ReadData(&t, sizeof(t)); } \ 168 template <> bool WriteFile(File& f, const type& t) \ 169 { return f.WriteData(&t, sizeof(t)); } \ 170 template <> bool ReadArrayFile(File& f, type* t,int n) \ 171 { return f.ReadData(t, sizeof(type)*n); } \ 172 template <> bool WriteArrayFile(File& f, const type* t,int n) \ 173 { return f.WriteData(t, sizeof(type)*n); } 176 _DECLARE_READ_WRITE_FILE_BASIC(
bool);
177 _DECLARE_READ_WRITE_FILE_BASIC(
char);
178 _DECLARE_READ_WRITE_FILE_BASIC(
signed char);
179 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned char);
180 _DECLARE_READ_WRITE_FILE_BASIC(
short);
181 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned short);
182 _DECLARE_READ_WRITE_FILE_BASIC(
int);
183 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned int);
184 _DECLARE_READ_WRITE_FILE_BASIC(
long);
185 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned long);
186 _DECLARE_READ_WRITE_FILE_BASIC(
long long);
187 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned long long);
188 _DECLARE_READ_WRITE_FILE_BASIC(
float);
189 _DECLARE_READ_WRITE_FILE_BASIC(
double);
190 _DECLARE_READ_WRITE_FILE_BASIC(
long double);
bool Open(const char *, int openmode=FILEREAD|FILEWRITE)
Opens a named file on the hard drive with the given open mode.
Definition: File.cpp:297
unsigned char * GetDataBuffer() const
Definition: File.cpp:259
int Length() const
Definition: File.cpp:433
bool Seek(int amount, int from=FILESEEKCURRENT)
Definition: File.cpp:395
bool WriteFile(File &f, const std::vector< type > &v)
WriteFile() for STL vectors. See File.h.
Definition: ioutils.h:81
void Close()
Closes this File object.
Definition: File.cpp:187
bool ReadAvailable(int numbytes=1) const
Returns true if you can read up to numbytes bytes on the file object.
Definition: File.cpp:657
bool WriteAvailable(int numbytes=1) const
Definition: File.cpp:675
bool ReadFile(File &f, std::vector< type > &v)
ReadFile() for STL vectors. See File.h.
Definition: ioutils.h:69
#define FILEREAD
Flags sent to Open: read or write mode (may be bitwise or-ed together)
Definition: File.h:5
bool ReadString(char *, int bufsize)
Reads a null-terminated string of at most bufsize characters.
Definition: File.cpp:552
void * FileObjectPointer()
Definition: File.cpp:236
bool WriteString(const char *)
Writes a null-terminated string.
Definition: File.cpp:622
void ResizeDataBuffer(int size)
Definition: File.cpp:248
bool OpenData(void *buf, int size, int openmode=FILEREAD|FILEWRITE)
Connects this File object to a memory buffer.
Definition: File.cpp:202
bool OpenUDPSocket(SOCKET sockfd)
Connects this File object to a socket, using UDP transmission.
Definition: File.cpp:282
A cross-platform class for reading/writing binary data.
Definition: File.h:47
bool OpenTCPSocket(SOCKET sockfd)
Connects this File object to a socket, using TCP transmission.
Definition: File.cpp:267
int Position() const
Definition: File.cpp:377
bool IsOpen() const
Returns true if the file object is open.
Definition: File.cpp:645