33 m_readOnly(FALSE) { m_file.
setName(name); }
35 int write(
const char *buf,uint size) { assert(m_readOnly==FALSE);
return m_file.
writeBlock(buf,size); }
36 bool open(
int m ) { m_readOnly = m==IO_ReadOnly;
return m_file.
open(m); }
37 bool seek(int64 pos) {
return m_file.seek(pos); }
38 int64 pos()
const {
return m_file.pos(); }
39 void close() { m_file.
close(); }
40 void setName(
const char *name ) { m_file.
setName(name); }
46 #if 0 // experimental version using mmap after opening the file as read only. 57 FileStorage() : m_readOnly(FALSE), m_map(0), m_off(0), m_size(0) {}
59 m_readOnly(FALSE) { m_file.
setName(name); }
60 void setName(
const char *name ) { m_file.
setName(name); }
68 m_fd = ::open(name.
data(),O_RDONLY);
71 m_size = stat.st_size;
72 m_map = mmap(NULL,m_size,PROT_READ,MAP_SHARED,m_fd,0);
73 if (m_map==MAP_FAILED) perror(
"mmap failed");
74 assert(m_map!=MAP_FAILED);
81 return m_file.
open(m);
84 int write(
const char *buf,uint size)
89 int read(
char *buf,uint size)
92 memcpy(buf,((
char *)m_map)+m_off,size);
116 munmap(m_map,m_size);
Abstract interface for file based memory storage operations.
Definition: store.h:27
Store implementation based on a file.
Definition: filestorage.h:28
int readBlock(char *data, uint len)
Definition: qfile_unix.cpp:473
The QString class provides an abstraction of Unicode text and the classic C null-terminated char arra...
Definition: qstring.h:350
int read(char *buf, uint size)
Definition: filestorage.h:34
const char * data() const
Definition: qstring.h:542
void setName(const QString &name)
Definition: qfile.cpp:167
int writeBlock(const char *data, uint len)
Definition: qfile_unix.cpp:537
bool open(int)
Definition: qfile_unix.cpp:134
QString name() const
Definition: qfile.h:121
The QFile class is an I/O device that operates on files.
Definition: qfile.h:50
void close()
Definition: qfile_unix.cpp:614
int write(const char *buf, uint size)
Definition: filestorage.h:35