Minor cleanup again.

git-svn-id: http://svn.purei.org/purei/trunk@1231 b36208d7-6611-0410-8bec-b1987f11c4a2
This commit is contained in:
jpd002 2014-04-06 02:50:50 +00:00
parent de08706f9f
commit 19f58d9a2d
2 changed files with 16 additions and 24 deletions

View File

@ -1,5 +1,6 @@
#include "PsfZipArchive.h"
#include "StdStreamUtils.h"
#include "make_unique.h"
CPsfZipArchive::CPsfZipArchive()
: m_inputFile(nullptr)
@ -10,29 +11,21 @@ CPsfZipArchive::CPsfZipArchive()
CPsfZipArchive::~CPsfZipArchive()
{
if(m_archive)
{
delete m_archive;
}
if(m_inputFile)
{
delete m_inputFile;
}
}
void CPsfZipArchive::Open(const boost::filesystem::path& filePath)
{
m_inputFile = new Framework::CStdStream(Framework::CreateInputStdStream(filePath.native()));
m_archive = new Framework::CZipArchiveReader(*m_inputFile);
for(auto fileHeaderIterator(std::begin(m_archive->GetFileHeaders()));
fileHeaderIterator != std::end(m_archive->GetFileHeaders()); fileHeaderIterator++)
assert(m_inputFile.IsEmpty());
assert(!m_archive);
m_inputFile = Framework::CreateInputStdStream(filePath.native());
m_archive = std::make_unique<Framework::CZipArchiveReader>(m_inputFile);
for(const auto& fileHeaderPair : m_archive->GetFileHeaders())
{
const Framework::Zip::ZIPDIRFILEHEADER& fileHeader(fileHeaderIterator->second);
const auto& fileHeader(fileHeaderPair.second);
if(fileHeader.uncompressedSize == 0) continue;
FILEINFO fileInfo;
fileInfo.name = fileHeaderIterator->first;
fileInfo.name = fileHeaderPair.first;
fileInfo.length = fileHeader.uncompressedSize;
m_files.push_back(fileInfo);
}

View File

@ -1,5 +1,4 @@
#ifndef _PSF_ZIP_ARCHIVE_H_
#define _PSF_ZIP_ARCHIVE_H_
#pragma once
#include "PsfArchive.h"
#include "StdStream.h"
@ -11,12 +10,12 @@ public:
CPsfZipArchive();
virtual ~CPsfZipArchive();
virtual void Open(const boost::filesystem::path&);
virtual void ReadFileContents(const char*, void*, unsigned int);
virtual void Open(const boost::filesystem::path&) override;
virtual void ReadFileContents(const char*, void*, unsigned int) override;
private:
Framework::CStdStream* m_inputFile;
Framework::CZipArchiveReader* m_archive;
};
typedef std::unique_ptr<Framework::CZipArchiveReader> ZipArchiveReaderPtr;
#endif
Framework::CStdStream m_inputFile;
ZipArchiveReaderPtr m_archive;
};