Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IDeflateService.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* IDeflateService.h (C) 2000-2023 */
9/* */
10/* Interface d'un service permettant de compresser/décompresser des données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IDEFLATESERVICE_H
13#define ARCANE_IDEFLATESERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28// Taille minimale (en octet) pour qu'un tableau soit compressé.
29// En dessous de cette taille il n'est pas compressé.
30// Si cette taille change, il faut changer la taille correspondante
31// dans le VariableComparer en C#.
32static const Integer DEFLATE_MIN_SIZE = 512;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36/*!
37 * \brief Interface d'un service permettant de compresser/décompresser des données.
38 *
39 * \deprecated Utiliser IDataCompressor à la place
40 */
41class ARCANE_CORE_EXPORT IDeflateService
42{
43 public:
44
45 virtual ~IDeflateService() = default;
46
47 public:
48
49 virtual void build() = 0;
50
51 public:
52
53 /*!
54 * \brief Compresse les données \a values et les stocke dans \a compressed_values.
55 *
56 * Cette opération peut lever une exception de type IOException en cas d'erreur.
57 */
58 ARCANE_DEPRECATED_REASON("Y2023: This interface is deprecated. Use IDataCompressor instead")
59 virtual void compress(ByteConstArrayView values, ByteArray& compressed_values) = 0;
60
61 /*!
62 * \brief Compresse les données \a values et les stocke dans \a compressed_values.
63 *
64 * Cette opération peut lever une exception de type IOException en cas d'erreur.
65 */
66 ARCANE_DEPRECATED_REASON("Y2023: This interface is deprecated. Use IDataCompressor instead")
67 virtual void compress(Span<const Byte> values, ByteArray& compressed_values);
68
69 /*!
70 * \brief Décompresse les données \a compressed_values et les stocke dans \a values.
71 *
72 * \a values doit déjà avoir été alloué à la taille nécessaire pour contenir
73 * les données décompressées.
74 * Cette opération peut lever une exception de type IOException en cas d'erreur.
75 */
76 ARCANE_DEPRECATED_REASON("Y2023: This interface is deprecated. Use IDataCompressor instead")
77 virtual void decompress(ByteConstArrayView compressed_values, ByteArrayView values) = 0;
78
79 /*!
80 * \brief Décompresse les données \a compressed_values et les stocke dans \a values.
81 *
82 * \a values doit déjà avoir été alloué à la taille nécessaire pour contenir
83 * les données décompressées.
84 * Cette opération peut lever une exception de type IOException en cas d'erreur.
85 */
86 ARCANE_DEPRECATED_REASON("Y2023: This interface is deprecated. Use IDataCompressor instead")
87 virtual void decompress(Span<const Byte> compressed_values, Span<Byte> values);
88};
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92
93} // End namespace Arcane
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98#endif
Interface d'un service permettant de compresser/décompresser des données.
Interface d'un service permettant de compresser/décompresser des données.
Vue modifiable d'un tableau d'un type T.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
unsigned char Byte
Type d'un octet.
Definition UtilsTypes.h:142
Int32 Integer
Type représentant un entier.