view Core/Compression/ZipWriter.h @ 82:9eb40cad7935

fixes
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 24 Sep 2012 14:05:19 +0200
parents 0ec5e2e327b1
children 5317ff5cecc0
line wrap: on
line source

#pragma once

#include <stdint.h>
#include <string.h>
#include <boost/shared_ptr.hpp>

namespace Orthanc
{
  class ZipWriter
  {
  private:
    struct PImpl;
    boost::shared_ptr<PImpl> pimpl_;

    bool hasFileInZip_;
    uint8_t compressionLevel_;
    std::string path_;

  public:
    ZipWriter();

    ~ZipWriter();

    void SetCompressionLevel(uint8_t level);

    uint8_t GetCompressionLevel() const
    {
      return compressionLevel_;
    }
    
    void Open();

    void Close();

    bool IsOpen() const;

    void SetOutputPath(const char* path);

    const std::string& GetOutputPath() const
    {
      return path_;
    }

    void CreateFileInZip(const char* path);

    void Write(const char* data, size_t length);

    void Write(const std::string& data);
  };
}