Advancing along here.

This commit is contained in:
Brad Arant 2020-12-09 09:43:52 -08:00
parent 5bd9e9ca21
commit c3c9530b4b
5 changed files with 39 additions and 37 deletions

View File

@ -5,46 +5,46 @@
# include "DirectoryEntry.h" # include "DirectoryEntry.h"
namespace coreutils { namespace coreutils {
class Directory { class Directory {
public: public:
Directory(std::string path) { Directory(std::string path) {
dir = opendir(path.c_str()); dir = opendir(path.c_str());
if(dir) { if(dir) {
struct dirent *entry = readdir(dir); struct dirent *entry = readdir(dir);
while(entry) { while(entry) {
directory.emplace(std::string(entry->d_name), entry); directory.emplace(std::string(entry->d_name), entry);
entry = readdir(dir); entry = readdir(dir);
} }
} }
if(directory.size() > 0) if(directory.size() > 0)
cursor = directory.begin(); cursor = directory.begin();
} }
~Directory() {} ~Directory() {}
bool eod() { bool eod() {
return cursor == directory.end(); return cursor == directory.end();
} }
DirectoryEntry get() { DirectoryEntry get() {
if(cursor == directory.end()) if(cursor == directory.end())
return NULL; return NULL;
return cursor->second; return cursor->second;
} }
void next() { void next() {
++cursor; ++cursor;
} }
private: private:
DIR *dir; DIR *dir;
std::map<std::string, DirectoryEntry> directory; std::map<std::string, DirectoryEntry> directory;
std::map<std::string, DirectoryEntry>::iterator cursor; std::map<std::string, DirectoryEntry>::iterator cursor;
}; };
} }
#endif #endif

View File

@ -4,25 +4,25 @@
# include "includes" # include "includes"
namespace coreutils { namespace coreutils {
class DirectoryEntry { class DirectoryEntry {
public: public:
DirectoryEntry(struct dirent *entry) { DirectoryEntry(struct dirent *entry) {
memcpy(&this->entry, entry, sizeof(struct dirent)); memcpy(&this->entry, entry, sizeof(struct dirent));
} }
~DirectoryEntry() {} ~DirectoryEntry() {}
std::string getName() { std::string getName() {
return std::string(entry.d_name); return std::string(entry.d_name);
} }
private: private:
struct dirent entry; struct dirent entry;
}; };
} }
#endif #endif

View File

@ -23,7 +23,7 @@ namespace coreutils {
} }
File::~File() { File::~File() {
close(fd);
} }
void File::setBufferSize(size_t size) { void File::setBufferSize(size_t size) {

18
File.h
View File

@ -5,32 +5,32 @@
/// ///
/// File /// File
/// ///
/// File abstraction class for accessing local file system files. /// File abstraction class for accessing local file system files.
/// ///
namespace coreutils { namespace coreutils {
class File { class File {
public: public:
File(std::string fileName, int mode = O_RDONLY, int authority = 0664); File(std::string fileName, int mode = O_RDONLY, int authority = 0664);
~File(); ~File();
void setBufferSize(size_t size); void setBufferSize(size_t size);
void read(); void read();
void write(std::string data); void write(std::string data);
std::string asString(); std::string asString();
char *buffer; char *buffer;
size_t size; size_t size;
std::string fileName; std::string fileName;
private: private:
int fd; int fd;
}; };
} }
#endif #endif

View File

@ -16,6 +16,8 @@ namespace coreutils {
bool IMFMessage::parse(PString &in) { bool IMFMessage::parse(PString &in) {
coreutils::Log(coreutils::LOG_DEBUG_1) << "Parsing-------\n" << in.str();
while (!in.ifNext("\r\n")) { while (!in.ifNext("\r\n")) {
headers.emplace_back(in); headers.emplace_back(in);
} }