GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/zserio/pmr/NewDeleteResource.h Lines: 8 8 100.0 %
Date: 2023-12-13 14:51:09 Branches: 1 2 50.0 %

Line Branch Exec Source
1
#ifndef ZSERIO_PMR_NEW_DELETE_RESOURCE_H_INC
2
#define ZSERIO_PMR_NEW_DELETE_RESOURCE_H_INC
3
4
#include <new>
5
#include "zserio/pmr/MemoryResource.h"
6
7
namespace zserio
8
{
9
namespace pmr
10
{
11
namespace detail
12
{
13
14
/**
15
 * Default memory resource which will be used by polymorphic allocators defined by zserio.
16
 */
17
49
class NewDeleteResource : public MemoryResource
18
{
19
private:
20
189
    void* doAllocate(size_t bytes, size_t ) override
21
    {
22
189
        return ::operator new(bytes);
23
    }
24
25
189
    void doDeallocate(void* p, size_t, size_t) override
26
    {
27
189
        ::operator delete(p);
28
189
    }
29
30
2
    bool doIsEqual(const MemoryResource& other) const noexcept override
31
    {
32
2
        return this == &other;
33
    }
34
};
35
36
} // namespace detail
37
38
/**
39
 * Gets pointer to (default) new delete resource.
40
 */
41
MemoryResource* getNewDeleteResource() noexcept;
42
43
} // namespace pmr
44
} // namespace zserio
45
46
#endif // ZSERIO_PMR_NEW_DELETE_RESOURCE_H_INC