ATLAS Offline Software
v5_ESCompression.h
Go to the documentation of this file.
1 //Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 
8 #ifndef OFFLINE_EVENTSTORAGE_V5_ESCOMPRESSION_H
9 #define OFFLINE_EVENTSTORAGE_V5_ESCOMPRESSION_H
10 
11 #include <string>
12 #include <sys/uio.h>
13 #include "ers/ers.h"
14 
16 
18  CompressionIssue,
20 
23  offline_EventStorage_v5::CompressionIssue,
24  "" << message << " - Zlib return code: "
25  << return_code << " Zlib message: " << zlib_message,
26  ERS_EMPTY,
27  ((const char *) message )
28  ((int)return_code)
29  ((std::string) zlib_message)
30  )
31 
32 
33 namespace offline_EventStorage_v5 {
34 
35  static const std::string compressiontag("Compression");
36 
37 
42  class CompressionBuffer{
43 
44  public:
45  using iovec_const = offline_EventStorage_v5::iovec_const;
46 
47  virtual ~CompressionBuffer() {};
48 
54  virtual void * handle() = 0;
55 
63  virtual void realloc(const uint32_t& newsize) = 0;
64 
72  virtual void grow(const uint32_t& newsize) = 0;
73 
79  virtual uint32_t buffersize() const = 0;
80  };
81 
82 
83  CompressionType string_to_type(const std::string& type);
84  std::string type_to_string(const CompressionType& type);
85 
86 
104  void zlibcompress(CompressionBuffer& compressed,
105  uint32_t& compressedsize,
106  const uint32_t& entries,
107  const struct iovec_const* iov,
108  const uint32_t& totalsize,
109  const uint32_t& level);
110 
111 
127  void zlibdecompress(CompressionBuffer& decompressed,
128  uint32_t& decompressedsize,
129  const void * compressed,
130  const uint32_t& compsize);
131 
132 }
133 
134 #endif
dqt_zlumi_alleff_HIST.iov
iov
Definition: dqt_zlumi_alleff_HIST.py:119
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
v5_EventStorageRecords.h
offline_EventStorage_v5::iovec_const
Definition: v5_EventStorageRecords.h:36
ReweightUtils.message
message
Definition: ReweightUtils.py:15
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
ERS_EMPTY
Configuration ERS_EMPTY
Definition: PscIssues.h:32
offline_EventStorage_v5
Definition: ByteStreamDataWriterV5.h:15
ZlibFailed
ZlibFailed
Definition: v5_ESCompression.h:22
offline_EventStorage_v5::CompressionType
CompressionType
Definition: v5_EventStorageRecords.h:41
ERS_DECLARE_ISSUE_BASE
ERS_DECLARE_ISSUE_BASE(afp, CantReadCool, dqm_core::Exception, "Cannot read folder '"<< folder<< "' from COOL database '"<< database<< "'", ERS_EMPTY,((std::string) database)((std::string) folder))
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
entries
double entries
Definition: listroot.cxx:49
ERS_DECLARE_ISSUE
ERS_DECLARE_ISSUE(offline_EventStorage_v5, CompressionIssue, ERS_EMPTY, ERS_EMPTY) ERS_DECLARE_ISSUE_BASE(offline_EventStorage_v5