Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
memory.hxx
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_LIBS_MEMORY_MEMORY_HXX__
22#define __ANTARES_LIBS_MEMORY_MEMORY_HXX__
23
24namespace Antares
25{
26inline uint64_t Memory::processID() const
27{
28 return pProcessID;
29}
30
31template<class T>
32inline void Memory::Release(T*& pointer)
33{
34 delete[] pointer;
35 pointer = nullptr;
36}
37
38template<class T>
39inline void Memory::Allocate(T*& out, size_t size)
40{
41 assert(size > 0);
42 out = new T[size];
43}
44
45template<class T>
46inline bool Memory::Null(const T* out)
47{
48 return !out;
49}
50
51template<class T>
52inline bool Memory::StrictNull(const T* out)
53{
54 return !out;
55}
56
57template<class U>
58inline U* Memory::RawPointer(U* array)
59{
60 return array;
61}
62
63template<class U>
64inline void Memory::Zero(uint count, U* array)
65{
66 (void)::memset(array, 0, sizeof(U) * count);
67}
68
69template<class U>
70inline void Memory::Assign(uint count, U* array, const U& value)
71{
72 for (uint i = 0; i != count; ++i)
73 {
74 array[i] = value;
75 }
76}
77
78} // namespace Antares
79
80#endif // __ANTARES_LIBS_MEMORY_MEMORY_HXX__
static void Release(T *&pointer)
Release a raw pointer.
Definition memory.hxx:32
uint64_t processID() const
Get the process ID of the application.
Definition memory.hxx:26