1/*
2 * Copyright 2011, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Oliver Tappe <zooey@hirschkaefer.de>
7 */
8
9
10#include <package/TempfileManager.h>
11
12
13namespace BPackageKit {
14
15namespace BPrivate {
16
17
18const BString TempfileManager::kDefaultName = "tmp-pkgkit-file-";
19
20
21TempfileManager::TempfileManager()
22	:
23	fNextNumber(1)
24{
25}
26
27
28TempfileManager::~TempfileManager()
29{
30	if (fBaseDirectory.InitCheck() != B_OK)
31		return;
32
33	fBaseDirectory.Rewind();
34	BEntry entry;
35	while (fBaseDirectory.GetNextEntry(&entry) == B_OK)
36		entry.Remove();
37
38	fBaseDirectory.GetEntry(&entry);
39	entry.Remove();
40}
41
42
43void
44TempfileManager::SetBaseDirectory(const BDirectory& baseDirectory)
45{
46	fBaseDirectory = baseDirectory;
47}
48
49
50BEntry
51TempfileManager::Create(const BString& baseName)
52{
53	BString name = BString(baseName) << atomic_add(&fNextNumber, 1);
54
55	return BEntry(&fBaseDirectory, name.String());
56}
57
58
59}	// namespace BPrivate
60
61}	// namespace BPackageKit
62