Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
FWCore
SharedMemory
interface
ROOTDeserializer.h
Go to the documentation of this file.
1
#ifndef FWCore_SharedMemory_ROOTDeserializer_h
2
#define FWCore_SharedMemory_ROOTDeserializer_h
3
// -*- C++ -*-
4
//
5
// Package: FWCore/SharedMemory
6
// Class : ROOTDeserializer
7
//
16
//
17
// Original Author: Chris Jones
18
// Created: 22/01/2020
19
//
20
21
// system include files
22
#include "TClass.h"
23
#include "TBufferFile.h"
24
25
// user include files
26
27
// forward declarations
28
29
namespace
edm::shared_memory {
30
template
<
typename
T,
typename
READBUFFER>
31
class
ROOTDeserializer
{
32
public
:
33
ROOTDeserializer
(READBUFFER& iBuffer)
34
:
buffer_
{iBuffer},
class_
{TClass::GetClass(
typeid
(
T
))},
bufferFile_
(TBuffer::kRead) {}
35
36
ROOTDeserializer
(
const
ROOTDeserializer
&) =
delete
;
37
const
ROOTDeserializer
&
operator=
(
const
ROOTDeserializer
&) =
delete
;
38
ROOTDeserializer
(
ROOTDeserializer
&&) =
delete
;
39
const
ROOTDeserializer
&
operator=
(
ROOTDeserializer
&&) =
delete
;
40
41
// ---------- const member functions ---------------------
42
43
// ---------- member functions ---------------------------
44
T
deserialize
() {
45
T
value
;
46
if
(
previousBufferIdentifier_
!=
buffer_
.bufferIdentifier()) {
47
auto
buff =
buffer_
.buffer();
48
bufferFile_
.SetBuffer(buff.first, buff.second, kFALSE);
49
previousBufferIdentifier_
=
buffer_
.bufferIdentifier();
50
}
51
52
class_
->ReadBuffer(
bufferFile_
, &value);
53
bufferFile_
.Reset();
54
return
value
;
55
}
56
57
private
:
58
// ---------- member data --------------------------------
59
READBUFFER&
buffer_
;
60
TClass*
const
class_
;
61
TBufferFile
bufferFile_
;
62
int
previousBufferIdentifier_
= 0;
63
};
64
}
// namespace edm::shared_memory
65
66
#endif
relativeConstraints.value
tuple value
Definition:
relativeConstraints.py:55
edm::shared_memory::ROOTDeserializer::previousBufferIdentifier_
int previousBufferIdentifier_
Definition:
ROOTDeserializer.h:62
edm::shared_memory::ROOTDeserializer::operator=
const ROOTDeserializer & operator=(const ROOTDeserializer &)=delete
edm::shared_memory::ROOTDeserializer::bufferFile_
TBufferFile bufferFile_
Definition:
ROOTDeserializer.h:61
edm::shared_memory::ROOTDeserializer::class_
TClass *const class_
Definition:
ROOTDeserializer.h:60
ROOTDeserializer
edm::shared_memory::ROOTDeserializer::buffer_
READBUFFER & buffer_
Definition:
ROOTDeserializer.h:59
edm::shared_memory::ROOTDeserializer
Definition:
ROOTDeserializer.h:31
edm::shared_memory::ROOTDeserializer::ROOTDeserializer
ROOTDeserializer(READBUFFER &iBuffer)
Definition:
ROOTDeserializer.h:33
edm::shared_memory::ROOTDeserializer::deserialize
T deserialize()
Definition:
ROOTDeserializer.h:44
T
long double T
Definition:
Basic3DVectorLD.h:48
Generated for CMSSW Reference Manual by
1.8.5