10 #define FILESEEKSTART 0 12 #define FILESEEKCURRENT 1 17 typedef UINT_PTR SOCKET;
53 bool Open(
const char*,
int openmode =
FILEREAD | FILEWRITE);
72 bool Seek(
int amount,
int from = FILESEEKCURRENT);
80 bool ReadData(
void*,
int size);
81 bool WriteData(
const void*,
int size);
135 template <
class type>
137 template <
class type>
138 bool WriteFile(
File& f,
const type& t) {
return t.Write(f); }
140 template <
class type>
141 bool ReadArrayFile(
File& f, type* t,
int n)
148 template <
class type>
149 bool WriteArrayFile(
File& f,
const type* t,
int n)
156 #define _DECLARE_READ_WRITE_FILE_BASIC(type) \ 157 template <> bool ReadFile(File& f, type& t); \ 158 template <> bool WriteFile(File& f, const type& t); \ 159 template <> bool ReadArrayFile(File& f, type* t,int n); \ 160 template <> bool WriteArrayFile(File& f, const type* t,int n); 162 #define _DEFINE_READ_WRITE_FILE_BASIC(type) \ 163 template <> bool ReadFile(File& f, type& t) \ 164 { return f.ReadData(&t, sizeof(t)); } \ 165 template <> bool WriteFile(File& f, const type& t) \ 166 { return f.WriteData(&t, sizeof(t)); } \ 167 template <> bool ReadArrayFile(File& f, type* t,int n) \ 168 { return f.ReadData(t, sizeof(type)*n); } \ 169 template <> bool WriteArrayFile(File& f, const type* t,int n) \ 170 { return f.WriteData(t, sizeof(type)*n); } 173 _DECLARE_READ_WRITE_FILE_BASIC(
bool);
174 _DECLARE_READ_WRITE_FILE_BASIC(
char);
175 _DECLARE_READ_WRITE_FILE_BASIC(
signed char);
176 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned char);
177 _DECLARE_READ_WRITE_FILE_BASIC(
short);
178 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned short);
179 _DECLARE_READ_WRITE_FILE_BASIC(
int);
180 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned int);
181 _DECLARE_READ_WRITE_FILE_BASIC(
long);
182 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned long);
183 _DECLARE_READ_WRITE_FILE_BASIC(
long long);
184 _DECLARE_READ_WRITE_FILE_BASIC(
unsigned long long);
185 _DECLARE_READ_WRITE_FILE_BASIC(
float);
186 _DECLARE_READ_WRITE_FILE_BASIC(
double);
187 _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:73
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:61
#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