1/* 2 * Copyright 2011, Oliver Tappe <zooey@hirschkaefer.de> 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include <package/hpkg/PackageWriter.h> 8 9#include <new> 10 11#include <package/hpkg/PackageWriterImpl.h> 12 13 14namespace BPackageKit { 15 16namespace BHPKG { 17 18 19// #pragma mark - BPackageWriterParameters 20 21 22BPackageWriterParameters::BPackageWriterParameters() 23 : 24 fFlags(0), 25 fCompression(B_HPKG_COMPRESSION_ZLIB), 26 fCompressionLevel(B_HPKG_COMPRESSION_LEVEL_BEST) 27{ 28} 29 30 31BPackageWriterParameters::~BPackageWriterParameters() 32{ 33} 34 35 36uint32 37BPackageWriterParameters::Flags() const 38{ 39 return fFlags; 40} 41 42 43void 44BPackageWriterParameters::SetFlags(uint32 flags) 45{ 46 fFlags = flags; 47} 48 49 50uint32 51BPackageWriterParameters::Compression() const 52{ 53 return fCompression; 54} 55 56 57void 58BPackageWriterParameters::SetCompression(uint32 compression) 59{ 60 fCompression = compression; 61} 62 63 64int32 65BPackageWriterParameters::CompressionLevel() const 66{ 67 return fCompressionLevel; 68} 69 70 71void 72BPackageWriterParameters::SetCompressionLevel(int32 compressionLevel) 73{ 74 fCompressionLevel = compressionLevel; 75} 76 77 78// #pragma mark - BPackageWriter 79 80 81BPackageWriter::BPackageWriter(BPackageWriterListener* listener) 82 : 83 fImpl(new (std::nothrow) PackageWriterImpl(listener)) 84{ 85} 86 87 88BPackageWriter::~BPackageWriter() 89{ 90 delete fImpl; 91} 92 93 94status_t 95BPackageWriter::Init(const char* fileName, 96 const BPackageWriterParameters* parameters) 97{ 98 if (fImpl == NULL) 99 return B_NO_MEMORY; 100 101 BPackageWriterParameters defaultParameters; 102 103 return fImpl->Init(fileName, 104 parameters != NULL ? *parameters : defaultParameters); 105} 106 107 108status_t 109BPackageWriter::Init(BPositionIO* file, bool keepFile, 110 const BPackageWriterParameters* parameters) 111{ 112 if (fImpl == NULL) 113 return B_NO_MEMORY; 114 115 BPackageWriterParameters defaultParameters; 116 117 return fImpl->Init(file, keepFile, 118 parameters != NULL ? *parameters : defaultParameters); 119} 120 121 122status_t 123BPackageWriter::SetInstallPath(const char* installPath) 124{ 125 if (fImpl == NULL) 126 return B_NO_INIT; 127 128 return fImpl->SetInstallPath(installPath); 129} 130 131 132void 133BPackageWriter::SetCheckLicenses(bool checkLicenses) 134{ 135 if (fImpl != NULL) 136 fImpl->SetCheckLicenses(checkLicenses); 137} 138 139 140status_t 141BPackageWriter::AddEntry(const char* fileName, int fd) 142{ 143 if (fImpl == NULL) 144 return B_NO_INIT; 145 146 return fImpl->AddEntry(fileName, fd); 147} 148 149 150status_t 151BPackageWriter::Finish() 152{ 153 if (fImpl == NULL) 154 return B_NO_INIT; 155 156 return fImpl->Finish(); 157} 158 159 160status_t 161BPackageWriter::Recompress(BPositionIO* inputFile) 162{ 163 if (fImpl == NULL) 164 return B_NO_INIT; 165 166 return fImpl->Recompress(inputFile); 167} 168 169 170} // namespace BHPKG 171 172} // namespace BPackageKit 173