diff options
author | Max Kellermann <max@musicpd.org> | 2017-01-03 12:22:14 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2017-01-03 12:24:05 +0100 |
commit | d2046de1932039643493a6de3bec79c17406fe0a (patch) | |
tree | ccceda6219b4bcac78e0af7ea003d0398d3b2a39 /test/visit_archive.cxx | |
parent | 4397fe3a13add8517a2d35702c8d56a79f3af282 (diff) |
test/run_input, ...: RAII-style global initialization
Diffstat (limited to 'test/visit_archive.cxx')
-rw-r--r-- | test/visit_archive.cxx | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/test/visit_archive.cxx b/test/visit_archive.cxx index 28d5dda35..dd5b2d3b3 100644 --- a/test/visit_archive.cxx +++ b/test/visit_archive.cxx @@ -35,8 +35,29 @@ #include <stdlib.h> #include <stdio.h> +class GlobalInit { + const ScopeIOThread io_thread; + +public: + GlobalInit() { + config_global_init(); +#ifdef ENABLE_ARCHIVE + archive_plugin_init_all(); +#endif + input_stream_global_init(); + } + + ~GlobalInit() { + input_stream_global_finish(); +#ifdef ENABLE_ARCHIVE + archive_plugin_deinit_all(); +#endif + config_global_finish(); + } +}; + class MyArchiveVisitor final : public ArchiveVisitor { - public: +public: virtual void VisitArchiveEntry(const char *path_utf8) override { printf("%s\n", path_utf8); } @@ -55,13 +76,7 @@ try { /* initialize MPD */ - config_global_init(); - - const ScopeIOThread io_thread; - - archive_plugin_init_all(); - - input_stream_global_init(); + const GlobalInit init; /* open the archive and dump it */ @@ -79,14 +94,6 @@ try { file->Visit(visitor); file->Close(); - /* deinitialize everything */ - - input_stream_global_finish(); - - archive_plugin_deinit_all(); - - config_global_finish(); - return result; } catch (const std::exception &e) { LogError(e); |