-
-
Save DavidA94/1b2daa132ec8a3e5b66ec0ed0a0117ed to your computer and use it in GitHub Desktop.
SimpleFileException
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unique_ptr<Directory> SimpleDirectory::createDirectory(string name) { return unique_ptr<Directory>(new SimpleDirectory(m_node->createDirectory(name))); } | |
unique_ptr<File> SimpleDirectory::createFile(string name) { return unique_ptr<File>(new SimpleFile(m_node->createFile(name))); } | |
vector<unique_ptr<FSEntry>> SimpleDirectory::children() { | |
vector<unique_ptr<FSEntry>> retVal; | |
for (auto child : m_node->getChildren()) { | |
if (child->isDirectory()) { | |
retVal.push_back(unique_ptr<FSEntry>(new SimpleDirectory(child))); | |
} | |
else { | |
retVal.push_back(unique_ptr<FSEntry>(new SimpleFile(child))); | |
} | |
} | |
return retVal; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SimpleDirectory : public Directory { | |
private: | |
VirtualNode* m_node; | |
virtual bool isDirectory() override { return m_node->isDirectory(); } | |
virtual bool isFile() override { return m_node->isFile(); } | |
public: | |
SimpleDirectory(VirtualNode* node) : m_node(node) {} | |
virtual vector<unique_ptr<FSEntry>> children() override; | |
virtual unique_ptr<Directory> createDirectory(string name) override; | |
virtual unique_ptr<File> createFile(string name) override; | |
virtual string name() override { return m_node->name(); } | |
virtual string fullName() override { return m_node->fullName(); } | |
virtual unique_ptr<Directory> parent() override { return unique_ptr<Directory>(new SimpleDirectory(m_node->parent())); } | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SimpleFile : public File { | |
private: | |
VirtualNode* m_node; | |
virtual bool isDirectory() override { return m_node->isDirectory(); } | |
virtual bool isFile() override { return m_node->isFile(); } | |
public: | |
SimpleFile(VirtualNode* node) : m_node(node) {} | |
virtual int length() override { return m_node->fileLength(); } | |
virtual Stream* open() override { return m_node; } | |
virtual string name() override { return m_node->name(); } | |
virtual string fullName() override { return m_node->fullName(); } | |
virtual unique_ptr<Directory> parent() override { return unique_ptr<Directory>(new SimpleDirectory(m_node->parent())); } | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment