Skip to content

Commit 1f94cc2

Browse files
authored
Add possibility to release buffer before destructor call (#1755)
* - add possibility to release buffer before destructor call * - fix files headers
1 parent 0ddf028 commit 1f94cc2

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

arccore/src/serialize/arccore/serialize/BasicSerializer.cc

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* BasicSerializer.cc (C) 2000-2023 */
8+
/* BasicSerializer.cc (C) 2000-2024 */
99
/* */
1010
/* Implémentation simple de 'ISerializer'. */
1111
/*---------------------------------------------------------------------------*/
@@ -282,6 +282,11 @@ class BasicSerializerNewImpl
282282
m_sizes_view = Int64ArrayView(NB_SIZE_ELEM,(Int64*)&m_buffer_view[0]);
283283
}
284284

285+
void releaseBuffer() override
286+
{
287+
m_buffer.dispose();
288+
}
289+
285290
void setFromSizes() override
286291
{
287292
Int64 tag_id = m_sizes_view[IDX_TAG];
@@ -1298,6 +1303,15 @@ preallocate(Int64 size)
12981303
/*---------------------------------------------------------------------------*/
12991304
/*---------------------------------------------------------------------------*/
13001305

1306+
void BasicSerializer::
1307+
releaseBuffer()
1308+
{
1309+
_p()->releaseBuffer();
1310+
}
1311+
1312+
/*---------------------------------------------------------------------------*/
1313+
/*---------------------------------------------------------------------------*/
1314+
13011315
void BasicSerializer::
13021316
setFromSizes()
13031317
{

arccore/src/serialize/arccore/serialize/BasicSerializer.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* BasicSerializer.h (C) 2000-2023 */
8+
/* BasicSerializer.h (C) 2000-2024 */
99
/* */
1010
/* Implémentation simple de 'ISerializer'. */
1111
/*---------------------------------------------------------------------------*/
@@ -389,6 +389,7 @@ class ARCCORE_SERIALIZE_EXPORT BasicSerializer
389389
Int64ConstArrayView sizesBuffer();
390390
Int64 totalSize() const;
391391
void preallocate(Int64 size);
392+
void releaseBuffer();
392393
void setFromSizes();
393394
void printSizes(std::ostream& o) const;
394395

arccore/src/serialize/arccore/serialize/BasicSerializerInternal.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* BasicSerializerInternal.h (C) 2000-2023 */
8+
/* BasicSerializerInternal.h (C) 2000-2024 */
99
/* */
1010
/* Partie interne de 'BasicSerializer'. */
1111
/*---------------------------------------------------------------------------*/
@@ -53,6 +53,7 @@ class ARCCORE_SERIALIZE_EXPORT BasicSerializer::Impl
5353
virtual Int64ConstArrayView sizesBuffer() const = 0;
5454
virtual ByteConstArrayView copyAndGetSizesBuffer() = 0;
5555
virtual void preallocate(Int64 size) = 0;
56+
virtual void releaseBuffer() = 0;
5657
virtual void setFromSizes() = 0;
5758
virtual Int64 totalSize() const = 0;
5859
virtual void printSizes(std::ostream& o) const = 0;

0 commit comments

Comments
 (0)