src/zserio/pmr/MemoryResource.cpp
Line | Count | Source |
1 | | #include <algorithm> |
2 | | |
3 | | #include "zserio/pmr/MemoryResource.h" |
4 | | #include "zserio/pmr/NewDeleteResource.h" |
5 | | |
6 | | namespace zserio |
7 | | { |
8 | | namespace pmr |
9 | | { |
10 | | |
11 | | namespace |
12 | | { |
13 | | |
14 | | MemoryResource*& getCurrentDefaultResource() |
15 | 137 | { |
16 | | // static variable is in the function to support proper early initialization (before main) |
17 | 137 | static MemoryResource* defaultResource = getNewDeleteResource(); |
18 | 137 | return defaultResource; |
19 | 137 | } |
20 | | |
21 | | } // namespace |
22 | | |
23 | | MemoryResource* getDefaultResource() noexcept |
24 | 134 | { |
25 | 134 | return getCurrentDefaultResource(); |
26 | 134 | } |
27 | | |
28 | | MemoryResource* setDefaultResource(MemoryResource* resource) noexcept |
29 | 3 | { |
30 | 3 | MemoryResource* defaultResource = (resource != nullptr) ? resource2 : getNewDeleteResource()1 ; |
31 | 3 | std::swap(defaultResource, getCurrentDefaultResource()); |
32 | 3 | return defaultResource; |
33 | 3 | } |
34 | | |
35 | | } // namespace pmr |
36 | | } // namespace zserio |