haiku/headers/os/package/hpkg/PackageWriter.h
Oliver Tappe d77c6cd26a * implemented checking of licenses, such that it is no longer possible
to create a package that refers to a license that is not a system
  license or contained in the package
* added package-info flags (currently only approve_license and 
  system_package)
* adjusted package-reader/writer and pkgman accordingly

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 19:50:36 +00:00

68 lines
1.4 KiB
C++

/*
* Copyright 2009,2011, Haiku, Inc.
* Distributed under the terms of the MIT License.
*/
#ifndef _PACKAGE__HPKG__PACKAGE_WRITER_H_
#define _PACKAGE__HPKG__PACKAGE_WRITER_H_
#include <SupportDefs.h>
#include <package/hpkg/ErrorOutput.h>
namespace BPackageKit {
namespace BHPKG {
namespace BPrivate {
class PackageWriterImpl;
}
using BPrivate::PackageWriterImpl;
class BPackageWriterListener : public BErrorOutput {
public:
virtual void PrintErrorVarArgs(const char* format,
va_list args) = 0;
virtual void OnEntryAdded(const char* path) = 0;
virtual void OnTOCSizeInfo(
uint64 uncompressedAttributeTypesSize,
uint64 uncompressedStringsSize,
uint64 uncompressedMainSize,
uint64 uncompressedTOCSize) = 0;
virtual void OnPackageAttributesSizeInfo(uint32 stringCount,
uint32 uncompressedSize) = 0;
virtual void OnPackageSizeInfo(uint32 headerSize,
uint64 heapSize, uint64 tocSize,
uint32 packageAttributesSize,
uint64 totalSize) = 0;
};
class BPackageWriter {
public:
public:
BPackageWriter(
BPackageWriterListener* listener);
~BPackageWriter();
status_t Init(const char* fileName);
status_t AddEntry(const char* fileName);
status_t Finish();
private:
PackageWriterImpl* fImpl;
};
} // namespace BHPKG
} // namespace BPackageKit
#endif // _PACKAGE__HPKG__PACKAGE_WRITER_H_