Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libslic3r/Zipper.cpp')
-rw-r--r--src/libslic3r/Zipper.cpp85
1 files changed, 5 insertions, 80 deletions
diff --git a/src/libslic3r/Zipper.cpp b/src/libslic3r/Zipper.cpp
index a5b53584d..cebafa633 100644
--- a/src/libslic3r/Zipper.cpp
+++ b/src/libslic3r/Zipper.cpp
@@ -1,5 +1,6 @@
#include <exception>
+#include "Exception.hpp"
#include "Zipper.hpp"
#include "miniz_extension.hpp"
#include <boost/log/trivial.hpp>
@@ -17,95 +18,19 @@
namespace Slic3r {
-class Zipper::Impl {
+class Zipper::Impl: public MZ_Archive {
public:
- mz_zip_archive arch;
std::string m_zipname;
- static std::string get_errorstr(mz_zip_error mz_err)
- {
- switch (mz_err)
- {
- case MZ_ZIP_NO_ERROR:
- return "no error";
- case MZ_ZIP_UNDEFINED_ERROR:
- return L("undefined error");
- case MZ_ZIP_TOO_MANY_FILES:
- return L("too many files");
- case MZ_ZIP_FILE_TOO_LARGE:
- return L("file too large");
- case MZ_ZIP_UNSUPPORTED_METHOD:
- return L("unsupported method");
- case MZ_ZIP_UNSUPPORTED_ENCRYPTION:
- return L("unsupported encryption");
- case MZ_ZIP_UNSUPPORTED_FEATURE:
- return L("unsupported feature");
- case MZ_ZIP_FAILED_FINDING_CENTRAL_DIR:
- return L("failed finding central directory");
- case MZ_ZIP_NOT_AN_ARCHIVE:
- return L("not a ZIP archive");
- case MZ_ZIP_INVALID_HEADER_OR_CORRUPTED:
- return L("invalid header or archive is corrupted");
- case MZ_ZIP_UNSUPPORTED_MULTIDISK:
- return L("unsupported multidisk archive");
- case MZ_ZIP_DECOMPRESSION_FAILED:
- return L("decompression failed or archive is corrupted");
- case MZ_ZIP_COMPRESSION_FAILED:
- return L("compression failed");
- case MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE:
- return L("unexpected decompressed size");
- case MZ_ZIP_CRC_CHECK_FAILED:
- return L("CRC-32 check failed");
- case MZ_ZIP_UNSUPPORTED_CDIR_SIZE:
- return L("unsupported central directory size");
- case MZ_ZIP_ALLOC_FAILED:
- return L("allocation failed");
- case MZ_ZIP_FILE_OPEN_FAILED:
- return L("file open failed");
- case MZ_ZIP_FILE_CREATE_FAILED:
- return L("file create failed");
- case MZ_ZIP_FILE_WRITE_FAILED:
- return L("file write failed");
- case MZ_ZIP_FILE_READ_FAILED:
- return L("file read failed");
- case MZ_ZIP_FILE_CLOSE_FAILED:
- return L("file close failed");
- case MZ_ZIP_FILE_SEEK_FAILED:
- return L("file seek failed");
- case MZ_ZIP_FILE_STAT_FAILED:
- return L("file stat failed");
- case MZ_ZIP_INVALID_PARAMETER:
- return L("invalid parameter");
- case MZ_ZIP_INVALID_FILENAME:
- return L("invalid filename");
- case MZ_ZIP_BUF_TOO_SMALL:
- return L("buffer too small");
- case MZ_ZIP_INTERNAL_ERROR:
- return L("internal error");
- case MZ_ZIP_FILE_NOT_FOUND:
- return L("file not found");
- case MZ_ZIP_ARCHIVE_TOO_LARGE:
- return L("archive is too large");
- case MZ_ZIP_VALIDATION_FAILED:
- return L("validation failed");
- case MZ_ZIP_WRITE_CALLBACK_FAILED:
- return L("write calledback failed");
- default:
- break;
- }
-
- return "unknown error";
- }
-
std::string formatted_errorstr() const
{
return L("Error with zip archive") + " " + m_zipname + ": " +
- get_errorstr(arch.m_last_error) + "!";
+ get_errorstr();
}
SLIC3R_NORETURN void blow_up() const
{
- throw std::runtime_error(formatted_errorstr());
+ throw Slic3r::ExportError(formatted_errorstr());
}
bool is_alive()
@@ -167,7 +92,7 @@ void Zipper::add_entry(const std::string &name)
m_entry = name;
}
-void Zipper::add_entry(const std::string &name, const uint8_t *data, size_t l)
+void Zipper::add_entry(const std::string &name, const void *data, size_t l)
{
if(!m_impl->is_alive()) return;