1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Initial checkin

This commit is contained in:
Brian Fiete 2019-08-23 11:56:54 -07:00
parent c74712dad9
commit 078564ac9e
3242 changed files with 1616395 additions and 0 deletions

View file

@ -0,0 +1,88 @@
#include "FileEnumerator.h"
USING_NS_BF;
String FileEnumeratorEntry::GetFilePath() const
{
char outName[4096];
int outSize = 4096;
BfpFindFileData_GetFileName(mFindData, outName, &outSize, NULL);
return mDirPath + "/" + outName;
}
String FileEnumeratorEntry::GetFileName() const
{
char outName[4096];
int outSize = 4096;
BfpFindFileData_GetFileName(mFindData, outName, &outSize, NULL);
return outName;
}
const FileEnumerator::Iterator& FileEnumerator::Iterator::operator++()
{
BF_ASSERT(mIdx == mFileEnumerator->mIdx);
mFileEnumerator->Next();
mIdx = mFileEnumerator->mIdx;
return *this;
}
bool FileEnumerator::Iterator::operator==(const FileEnumerator::Iterator& rhs)
{
return
(rhs.mFileEnumerator == mFileEnumerator) &&
(rhs.mIdx == mIdx);
}
bool FileEnumerator::Iterator::operator!=(const FileEnumerator::Iterator& rhs)
{
return
(rhs.mFileEnumerator != mFileEnumerator) ||
(rhs.mIdx != mIdx);
}
const FileEnumerator::FileEnumeratorEntry& FileEnumerator::Iterator::operator*()
{
return *mFileEnumerator;
}
FileEnumerator::FileEnumerator(const String& dirPath, Flags flags)
{
mDirPath = dirPath;
mFindData = BfpFindFileData_FindFirstFile((dirPath + "/*.*").c_str(), (BfpFindFileFlags)flags, NULL);
mFlags = flags;
if (mFindData != NULL)
mIdx = 0;
else
mIdx = -1;
}
FileEnumerator::~FileEnumerator()
{
if (mFindData != NULL)
BfpFindFileData_Release(mFindData);
}
bool FileEnumerator::Next()
{
if (BfpFindFileData_FindNextFile(mFindData))
mIdx++;
else
mIdx = -1;
return mIdx != -1;
}
FileEnumerator::Iterator FileEnumerator::begin()
{
Iterator itr;
itr.mFileEnumerator = this;
itr.mIdx = mIdx;
return itr;
}
FileEnumerator::Iterator FileEnumerator::end()
{
Iterator itr;
itr.mFileEnumerator = this;
itr.mIdx = -1;
return itr;
}