Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IItemFamilyPolicyMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IItemFamilyPolicyMng.h (C) 2000-2025 */
9/* */
10/* Policies of an entity family. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IITEMFAMILYPOLICYMNG_H
13#define ARCANE_CORE_IITEMFAMILYPOLICYMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \brief Interface for entity family policies.
30 */
31class ARCANE_CORE_EXPORT IItemFamilyPolicyMng
32{
33 public:
34
35 virtual ~IItemFamilyPolicyMng() = default;
36
37 public:
38
39 //! Compaction policy
41 /*!
42 * \brief Creates an instance for exchanging entities between subdomains.
43 * The returned instance must be destroyed by the delete operator.
44 */
46
47 /*!
48 * \brief Creates an instance for entity serialization.
49 * The returned instance must be destroyed by the delete operator.
50 *
51 * \a with_flags indicates whether the value of Item::flags() should be serialized.
52 * This is not necessarily supported for all families.
53 */
54 virtual IItemFamilySerializer* createSerializer(bool with_flags = false) = 0;
55
56 /*!
57 * \brief Adds a factory for a serialization step.
58 *
59 * \a factory remains the property of the caller and must not be destroyed
60 * as long as this instance exists.
61 */
63
64 //! Removes a factory for a serialization step.
66};
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71} // namespace Arcane
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76#endif
Declarations of Arcane's general types.
Interface for entity family policies.
virtual IItemFamilySerializer * createSerializer(bool with_flags=false)=0
Creates an instance for entity serialization. The returned instance must be destroyed by the delete o...
virtual void removeSerializeStep(IItemFamilySerializeStepFactory *factory)=0
Removes a factory for a serialization step.
virtual IItemFamilyCompactPolicy * compactPolicy()=0
Compaction policy.
virtual void addSerializeStep(IItemFamilySerializeStepFactory *factory)=0
Adds a factory for a serialization step.
virtual IItemFamilyExchanger * createExchanger()=0
Creates an instance for exchanging entities between subdomains. The returned instance must be destroy...
Factory for creating a step in the serialization of entity families.
Manages the serialization/deserialization of entities in a family.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --