summaryrefslogtreecommitdiff
path: root/src/TagArchive.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/TagArchive.cxx')
-rw-r--r--src/TagArchive.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/TagArchive.cxx b/src/TagArchive.cxx
index 1da2d72f2..20a9c7a2e 100644
--- a/src/TagArchive.cxx
+++ b/src/TagArchive.cxx
@@ -20,6 +20,9 @@
#include "config.h"
#include "TagArchive.hxx"
#include "TagStream.hxx"
+#include "tag/Generic.hxx"
+#include "tag/TagHandler.hxx"
+#include "tag/TagBuilder.hxx"
#include "fs/Path.hxx"
#include "util/Error.hxx"
#include "input/InputStream.hxx"
@@ -42,3 +45,15 @@ tag_archive_scan(Path path, const TagHandler &handler, void *handler_ctx)
return tag_stream_scan(*is, handler, handler_ctx);
}
+
+bool
+tag_archive_scan(Path path, TagBuilder &builder)
+{
+ assert(!path.IsNull());
+
+ Mutex mutex;
+ Cond cond;
+ InputStreamPtr is(OpenArchiveInputStream(path, mutex, cond,
+ IgnoreError()));
+ return is && tag_stream_scan(*is, builder);
+}