[ox/std] Remove ::size_t

This commit is contained in:
2018-04-12 19:35:16 -05:00
parent ad62d4c012
commit b8c54eba0c
22 changed files with 213 additions and 179 deletions

View File

@@ -709,7 +709,7 @@ int FileStore<Header>::read(Inode *inode, typename Header::FsSize_t readStart,
// do byte-by-byte copy to ensure alignment is right when copying to
// final destination
T val;
for (size_t i = 0; i < sizeof(T); i++) {
for (std::size_t i = 0; i < sizeof(T); i++) {
((uint8_t*) (&val))[i] = *(it++);
}
*(data++) = val;

View File

@@ -38,16 +38,24 @@ class Ptr {
inline size_t end();
inline T *get() const;
inline const T *get() const;
inline T *operator->() const;
inline T *get();
inline operator T*() const;
inline const T *operator->() const;
inline T *operator->();
inline operator const T*() const;
inline operator T*();
inline const T &operator*() const;
inline T &operator*();
inline operator size_t() const;
inline T &operator*() const;
template<typename SubT>
inline Ptr<SubT, size_t, sizeof(T)> subPtr(size_t offset, size_t size);
@@ -95,24 +103,57 @@ inline size_t Ptr<T, size_t, minOffset>::end() {
}
template<typename T, typename size_t, size_t minOffset>
inline T *Ptr<T, size_t, minOffset>::get() const {
inline const T *Ptr<T, size_t, minOffset>::get() const {
oxAssert(m_validated, "Unvalidated pointer access. (ox::fs::Ptr::get())");
oxAssert(valid(), "Invalid pointer access. (ox::fs::Ptr::get())");
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline T *Ptr<T, size_t, minOffset>::operator->() const {
inline T *Ptr<T, size_t, minOffset>::get() {
oxAssert(m_validated, "Unvalidated pointer access. (ox::fs::Ptr::get())");
oxAssert(valid(), "Invalid pointer access. (ox::fs::Ptr::get())");
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline const T *Ptr<T, size_t, minOffset>::operator->() const {
oxAssert(m_validated, "Unvalidated pointer access. (ox::fs::Ptr::operator->())");
oxAssert(valid(), "Invalid pointer access. (ox::fs::Ptr::operator->())");
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline Ptr<T, size_t, minOffset>::operator T*() const {
inline T *Ptr<T, size_t, minOffset>::operator->() {
oxAssert(m_validated, "Unvalidated pointer access. (ox::fs::Ptr::operator->())");
oxAssert(valid(), "Invalid pointer access. (ox::fs::Ptr::operator->())");
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline Ptr<T, size_t, minOffset>::operator const T*() const {
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline Ptr<T, size_t, minOffset>::operator T*() {
return reinterpret_cast<T*>(m_dataStart + m_itemOffset);
}
template<typename T, typename size_t, size_t minOffset>
inline const T &Ptr<T, size_t, minOffset>::operator*() const {
oxAssert(m_validated, "Unvalidated pointer dereference. (ox::fs::Ptr::operator*())");
oxAssert(valid(), "Invalid pointer dereference. (ox::fs::Ptr::operator*())");
return *reinterpret_cast<T*>(this);
}
template<typename T, typename size_t, size_t minOffset>
inline T &Ptr<T, size_t, minOffset>::operator*() {
oxAssert(m_validated, "Unvalidated pointer dereference. (ox::fs::Ptr::operator*())");
oxAssert(valid(), "Invalid pointer dereference. (ox::fs::Ptr::operator*())");
return *reinterpret_cast<T*>(this);
}
template<typename T, typename size_t, size_t minOffset>
inline Ptr<T, size_t, minOffset>::operator size_t() const {
if (m_dataStart and m_itemOffset) {
@@ -121,13 +162,6 @@ inline Ptr<T, size_t, minOffset>::operator size_t() const {
return 0;
}
template<typename T, typename size_t, size_t minOffset>
inline T &Ptr<T, size_t, minOffset>::operator*() const {
oxAssert(m_validated, "Unvalidated pointer dereference. (ox::fs::Ptr::operator*())");
oxAssert(valid(), "Invalid pointer dereference. (ox::fs::Ptr::operator*())");
return *reinterpret_cast<T*>(this);
}
template<typename T, typename size_t, size_t minOffset>
template<typename SubT>
inline Ptr<SubT, size_t, sizeof(T)> Ptr<T, size_t, minOffset>::subPtr(size_t offset, size_t size) {

View File

@@ -86,7 +86,7 @@ struct __attribute__((packed)) Directory {
uint64_t getFileInode(const char *name);
int getChildrenInodes(InodeId_t *inodes, size_t inodesLen);
int getChildrenInodes(InodeId_t *inodes, std::size_t inodesLen);
int rmFile(const char *name);
@@ -123,7 +123,7 @@ uint64_t Directory<InodeId_t, FsSize_t>::getFileInode(const char *name) {
}
template<typename InodeId_t, typename FsSize_t>
int Directory<InodeId_t, FsSize_t>::getChildrenInodes(InodeId_t *inodes, size_t inodesLen) {
int Directory<InodeId_t, FsSize_t>::getChildrenInodes(InodeId_t *inodes, std::size_t inodesLen) {
if (inodesLen >= this->children) {
auto current = files();
if (current) {
@@ -205,4 +205,4 @@ int Directory<InodeId_t, FsSize_t>::ls(List *list) {
}
}
}
}

View File

@@ -14,7 +14,7 @@ template class FileSystemTemplate<FileStore16, OxFS_16>;
template class FileSystemTemplate<FileStore32, OxFS_32>;
template class FileSystemTemplate<FileStore64, OxFS_64>;
FileSystem *createFileSystem(uint8_t *buff, size_t buffSize, bool ownsBuff) {
FileSystem *createFileSystem(uint8_t *buff, std::size_t buffSize, bool ownsBuff) {
auto version = ((FileStore16*) buff)->version();
auto type = ((FileStore16*) buff)->fsType();
FileSystem *fs = nullptr;
@@ -45,7 +45,7 @@ FileSystem *createFileSystem(uint8_t *buff, size_t buffSize, bool ownsBuff) {
return fs;
}
FileSystem *expandCopy(FileSystem *fs, size_t size) {
FileSystem *expandCopy(FileSystem *fs, std::size_t size) {
auto fsBuff = fs->buff();
FileSystem *retval = nullptr;
@@ -61,7 +61,7 @@ FileSystem *expandCopy(FileSystem *fs, size_t size) {
return retval;
}
FileSystem *expandCopyCleanup(FileSystem *fs, size_t size) {
FileSystem *expandCopyCleanup(FileSystem *fs, std::size_t size) {
auto out = expandCopy(fs, size);
if (!out) {

View File

@@ -33,13 +33,13 @@ class FileSystem {
template<typename List>
int ls(const char *path, List *list);
virtual int read(const char *path, void *buffer, size_t buffSize) = 0;
virtual int read(const char *path, void *buffer, std::size_t buffSize) = 0;
virtual int read(uint64_t inode, void *buffer, size_t size) = 0;
virtual int read(uint64_t inode, void *buffer, std::size_t size) = 0;
virtual int read(uint64_t inode, size_t readStart, size_t readSize, void *buffer, size_t *size) = 0;
virtual int read(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) = 0;
virtual uint8_t *read(uint64_t inode, size_t *size) = 0;
virtual uint8_t *read(uint64_t inode, std::size_t *size) = 0;
virtual int remove(uint64_t inode, bool recursive = false) = 0;
@@ -75,7 +75,7 @@ int FileSystem::ls(const char *path, List *list) {
int err = 0;
auto s = stat(path);
if (s.fileType == FileType_Directory) {
uint8_t dirBuff[max(static_cast<size_t>(s.size), sizeof(Dir)) * 4];
uint8_t dirBuff[max(static_cast<std::size_t>(s.size), sizeof(Dir)) * 4];
auto dir = (Directory<uint64_t, uint64_t>*) dirBuff;
err |= readDirectory(path, dir);
if (!err) {
@@ -85,7 +85,7 @@ int FileSystem::ls(const char *path, List *list) {
return err;
}
FileSystem *createFileSystem(uint8_t *buff, size_t buffSize, bool ownsBuff = false);
FileSystem *createFileSystem(uint8_t *buff, std::size_t buffSize, bool ownsBuff = false);
/**
* Creates a larger version of the given FileSystem.
@@ -96,6 +96,6 @@ FileSystem *expandCopy(FileSystem *src);
* Calls expandCopy and deletes the original FileSystem and buff a resize was
* performed.
*/
FileSystem *expandCopyCleanup(FileSystem *fs, size_t size);
FileSystem *expandCopyCleanup(FileSystem *fs, std::size_t size);
}

View File

@@ -33,13 +33,13 @@ class FileSystemTemplate: public FileSystem {
int mkdir(const char *path, bool recursive = false) override;
int read(const char *path, void *buffer, size_t buffSize) override;
int read(const char *path, void *buffer, std::size_t buffSize) override;
int read(uint64_t inode, void *buffer, size_t buffSize) override;
int read(uint64_t inode, void *buffer, std::size_t buffSize) override;
int read(uint64_t inode, size_t readStart, size_t readSize, void *buffer, size_t *size) override;
int read(uint64_t inode, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) override;
uint8_t *read(uint64_t inode, size_t *size) override;
uint8_t *read(uint64_t inode, std::size_t *size) override;
void resize(uint64_t size = 0) override;
@@ -201,7 +201,7 @@ FileStat FileSystemTemplate<FileStore, FS_TYPE>::stat(uint64_t inode) {
#pragma warning(disable:4244)
#endif
template<typename FileStore, FsType FS_TYPE>
int FileSystemTemplate<FileStore, FS_TYPE>::read(const char *path, void *buffer, size_t buffSize) {
int FileSystemTemplate<FileStore, FS_TYPE>::read(const char *path, void *buffer, std::size_t buffSize) {
int retval = -1;
// find the inode for the given path
@@ -222,7 +222,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::read(const char *path, void *buffer,
#pragma warning(disable:4244)
#endif
template<typename FileStore, FsType FS_TYPE>
int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, void *buffer, size_t buffSize) {
int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, void *buffer, std::size_t buffSize) {
auto stat = m_store->stat(inode);
if (stat.size <= buffSize) {
return m_store->read(inode, buffer, nullptr);
@@ -237,9 +237,9 @@ int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, void *buffer, s
#pragma warning(disable:4244)
#endif
template<typename FileStore, FsType FS_TYPE>
int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, size_t readStart,
size_t readSize, void *buffer,
size_t *size) {
int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, std::size_t readStart,
std::size_t readSize, void *buffer,
std::size_t *size) {
if (size) {
auto stat = m_store->stat(inode);
*size = stat.size;
@@ -254,7 +254,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, size_t readStar
#pragma warning(disable:4244)
#endif
template<typename FileStore, FsType FS_TYPE>
uint8_t *FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, size_t *size) {
uint8_t *FileSystemTemplate<FileStore, FS_TYPE>::read(uint64_t inode, std::size_t *size) {
auto s = m_store->stat(inode);
auto buff = new uint8_t[s.size];
if (size) {
@@ -329,7 +329,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::remove(uint64_t inode, bool recursiv
template<typename FileStore, FsType FS_TYPE>
int FileSystemTemplate<FileStore, FS_TYPE>::write(const char *path, void *buffer, uint64_t size, uint8_t fileType) {
int err = 0;
size_t pathLen = ox_strlen(path);
std::size_t pathLen = ox_strlen(path);
char dirPath[pathLen];
char fileName[pathLen];
PathIterator pathReader(path, pathLen);
@@ -484,7 +484,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::insertDirectoryEntry(const char *dir
auto s = stat(dirPath);
if (s.inode) {
auto spaceNeeded = DirectoryEntry<typename FileStore::InodeId_t>::spaceNeeded(fileName);
size_t dirBuffSize = s.size + spaceNeeded;
std::size_t dirBuffSize = s.size + spaceNeeded;
uint8_t dirBuff[dirBuffSize];
int err = read(s.inode, dirBuff, dirBuffSize);
@@ -515,7 +515,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::move(const char *src, const char *de
if (inode && !stat(dest).inode) {
int err = 0;
size_t srcLen = ox_strlen(src);
std::size_t srcLen = ox_strlen(src);
char srcDirPath[srcLen];
char srcFileName[srcLen];
PathIterator srcPathReader(src, srcLen);
@@ -525,7 +525,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::move(const char *src, const char *de
return err;
}
size_t destLen = ox_strlen(dest);
std::size_t destLen = ox_strlen(dest);
char destDirPath[destLen];
char destFileName[destLen];
PathIterator destPathReader(dest, destLen);
@@ -554,7 +554,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::move(const char *src, const char *de
template<typename FileStore, FsType FS_TYPE>
int FileSystemTemplate<FileStore, FS_TYPE>::rmDirectoryEntry(const char *path) {
int err = 0;
size_t pathLen = ox_strlen(path);
std::size_t pathLen = ox_strlen(path);
char dirPath[pathLen];
char fileName[pathLen];
PathIterator pathReader(path, pathLen);
@@ -592,7 +592,7 @@ int FileSystemTemplate<FileStore, FS_TYPE>::readDirectory(const char *path, Dire
typedef Directory<typename FileStore::InodeId_t, typename FileStore::FsSize_t> Dir;
int err = 0;
auto dirStat = stat(path);
auto dirBuffLen = ox::max(static_cast<size_t>(dirStat.size), sizeof(Dir));
auto dirBuffLen = ox::max(static_cast<std::size_t>(dirStat.size), sizeof(Dir));
uint8_t dirBuff[dirBuffLen];
auto dir = (Dir*) dirBuff;

View File

@@ -12,7 +12,7 @@
namespace ox {
PathIterator::PathIterator(const char *path, size_t maxSize) {
PathIterator::PathIterator(const char *path, std::size_t maxSize) {
m_path = path;
m_maxSize = maxSize;
}
@@ -20,9 +20,9 @@ PathIterator::PathIterator(const char *path, size_t maxSize) {
/**
* @return 0 if no error
*/
int PathIterator::dirPath(char *out, size_t outSize) {
int PathIterator::dirPath(char *out, std::size_t outSize) {
int idx = ox_lastIndexOf(m_path, '/', m_maxSize);
size_t size = idx + 1;
std::size_t size = idx + 1;
if (idx >= 0 && size < outSize) {
ox_memcpy(out, m_path, size);
out[size] = 0;
@@ -35,11 +35,11 @@ int PathIterator::dirPath(char *out, size_t outSize) {
/**
* @return 0 if no error
*/
int PathIterator::fileName(char *out, size_t outSize) {
int PathIterator::fileName(char *out, std::size_t outSize) {
auto idx = ox_lastIndexOf(m_path, '/', m_maxSize);
if (idx >= 0) {
idx++; // pass up the preceding /
size_t fileNameSize = ox_strlen(&m_path[idx]);
std::size_t fileNameSize = ox_strlen(&m_path[idx]);
if (fileNameSize < outSize) {
ox_memcpy(out, &m_path[idx], fileNameSize);
out[fileNameSize] = 0;
@@ -53,22 +53,22 @@ int PathIterator::fileName(char *out, size_t outSize) {
}
// Gets the next item in the path
int PathIterator::next(char *pathOut, size_t pathOutSize) {
size_t size = 0;
int PathIterator::next(char *pathOut, std::size_t pathOutSize) {
std::size_t size = 0;
int retval = 1;
if (m_iterator < m_maxSize && ox_strlen(&m_path[m_iterator])) {
retval = 0;
if (m_path[m_iterator] == '/') {
m_iterator++;
}
size_t start = m_iterator;
std::size_t start = m_iterator;
// end is at the next /
const char *substr = ox_strchr(&m_path[start], '/', m_maxSize - start);
// correct end if it is invalid, which happens if there is no next /
if (!substr) {
substr = ox_strchr(&m_path[start], 0, m_maxSize - start);
}
size_t end = substr - m_path;
std::size_t end = substr - m_path;
size = end - start;
// cannot fit the output in the output parameter
if (size >= pathOutSize) {
@@ -86,9 +86,9 @@ int PathIterator::next(char *pathOut, size_t pathOutSize) {
}
bool PathIterator::hasNext() {
size_t size = 0;
std::size_t size = 0;
if (m_iterator < m_maxSize && ox_strlen(&m_path[m_iterator])) {
size_t start = m_iterator;
std::size_t start = m_iterator;
if (m_path[start] == '/') {
start++;
}
@@ -98,7 +98,7 @@ bool PathIterator::hasNext() {
if (!substr) {
substr = ox_strchr(&m_path[start], 0, m_maxSize - start);
}
size_t end = substr - m_path;
std::size_t end = substr - m_path;
size = end - start;
}
return size > 0;

View File

@@ -15,26 +15,26 @@ namespace ox {
class PathIterator {
private:
const char *m_path = nullptr;
size_t m_iterator = 0;
size_t m_maxSize = 0;
std::size_t m_iterator = 0;
std::size_t m_maxSize = 0;
public:
PathIterator(const char *path, size_t maxSize);
PathIterator(const char *path, std::size_t maxSize);
/**
* @return 0 if no error
*/
int dirPath(char *pathOut, size_t pathOutSize);
int dirPath(char *pathOut, std::size_t pathOutSize);
/**
* @return 0 if no error
*/
int fileName(char *out, size_t outSize);
int fileName(char *out, std::size_t outSize);
/**
* @return 0 if no error
*/
int next(char *pathOut, size_t pathOutSize);
int next(char *pathOut, std::size_t pathOutSize);
bool hasNext();
};