CaptureMoment
0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
exiv2_initializer.cpp
Go to the documentation of this file.
1
8
#include "
serializer/provider/exiv2_initializer.h
"
9
#include <exiv2/exiv2.hpp>
10
#include <spdlog/spdlog.h>
11
12
namespace
CaptureMoment::Core::Serializer
{
13
14
// Static member definition
15
std::once_flag Exiv2Initializer::m_init_flag;
16
17
void
Exiv2Initializer::initialize
()
18
{
19
std::call_once(m_init_flag, [](){
20
spdlog::debug(
"Exiv2Initializer: Initializing Exiv2 XMP Parser..."
);
21
Exiv2::XmpParser::initialize();
22
::atexit(
Exiv2Initializer::terminate
);
// Register termination function
23
spdlog::info(
"Exiv2Initializer: Exiv2 XMP Parser initialized."
);
24
});
25
}
26
27
void
Exiv2Initializer::terminate
()
28
{
29
spdlog::debug(
"Exiv2Initializer: Terminating Exiv2 XMP Parser..."
);
30
Exiv2::XmpParser::terminate();
31
spdlog::info(
"Exiv2Initializer: Exiv2 XMP Parser terminated."
);
32
}
33
34
}
// namespace CaptureMoment::Core::Serializer
CaptureMoment::Core::Serializer::Exiv2Initializer::initialize
static void initialize()
Initializes the Exiv2 XMP parser if not already done. This function is thread-safe.
Definition
exiv2_initializer.cpp:17
CaptureMoment::Core::Serializer::Exiv2Initializer::terminate
static void terminate()
Terminates the Exiv2 XMP parser. This function is registered to run at program termination via std::a...
Definition
exiv2_initializer.cpp:27
exiv2_initializer.h
Declaration of Exiv2Initializer class.
CaptureMoment::Core::Serializer
Definition
file_serializer_manager.cpp:12
CaptureMoment — footer