Skip to content

Commit e915fc7

Browse files
author
Mario Gonzalez
committed
minor changes to comply with the cms coding rules
1 parent f3e18e8 commit e915fc7

File tree

6 files changed

+18
-44
lines changed

6 files changed

+18
-44
lines changed

FWCore/TestModules/plugins/GenericCloner.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,14 +138,16 @@ namespace edmtest {
138138

139139
event.getByToken(product.getToken_, handle);
140140

141+
// create a "wrapper", whose wrapped product will be cloned into "clone"
141142
edm::WrapperBase const* wrapper = handle.product();
142143
std::unique_ptr<edm::WrapperBase> clone(static_cast<edm::WrapperBase*>(product.wrappedType_.getClass()->New()));
143144

144-
// Object from which, for a given type, we can initialize both a const and a mutable serialiser.
145+
// get a "serialiserSource" object from the plugin factory.
146+
// serializeSource objects can produce, for a given type, both const and mutable TrivialSerialisers.
145147
std::unique_ptr<ngt::TrivialSerialiserSourceBase> serialiserSource{
146148
ngt::TrivialSerialiserSourceFactory::get()->create(product.objectType_.typeInfo().name())};
147149

148-
// initialise a const and a mutable serialisers.
150+
// initialise a const and a mutable TrivialSerialisers.
149151
auto const_serialiser = serialiserSource->initialize(*wrapper);
150152
auto mutable_serialiser = serialiserSource->initialize(*clone);
151153

TrivialSerialisation/Common/interface/TrivialCopyTraits.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef DataFormats_Common_interface_TrivialCopyTraits_h
2-
#define DataFormats_Common_interface_TrivialCopyTraits_h
1+
#ifndef TrivialSerialisation_Common_interface_TrivialCopyTraits_h
2+
#define TrivialSerialisation_Common_interface_TrivialCopyTraits_h
33

44
#include <cassert>
55
#include <span>
@@ -89,4 +89,4 @@ namespace edm {
8989

9090
} // namespace edm
9191

92-
#endif // DataFormats_Common_interface_TrivialCopyTraits_h
92+
#endif // TrivialSerialisation_Common_interface_TrivialCopyTraits_h

TrivialSerialisation/Common/interface/TrivialSerialiser.h

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33

44
#include <cstdio>
55
#include "DataFormats/Common/interface/Wrapper.h"
6-
#include "DataFormats/Common/interface/WrapperBase.h"
76
#include "TrivialSerialisation/Common/interface/TrivialSerialiserBase.h"
87
#include "TrivialSerialisation/Common/interface/TrivialCopyTraits.h"
9-
#include "TrivialSerialisation/Common/interface/TrivialSerialiserSourceBase.h"
10-
#include "DataFormats/Common/interface/Uninitialized.h"
118

129
// defines all methods of TrivialSerialiserBase
1310

@@ -28,24 +25,16 @@ namespace ngt {
2825
void trivialCopyFinalize() override;
2926

3027
private:
31-
constexpr T construct_() {
32-
if constexpr (requires { T(); }) {
33-
return T();
34-
} else {
35-
return T(edm::kUninitialized);
36-
}
37-
}
38-
3928
const T& getWrappedObj_(WrapperType const& w) const {
4029
if (not w.isPresent()) {
41-
throw edm::Exception(edm::errors::LogicError) << "Attempt to access an empty Wrapper aa";
30+
throw edm::Exception(edm::errors::LogicError) << "Attempt to access an empty Wrapper";
4231
}
4332
return *w.product();
4433
}
4534

4635
T& getWrappedObj_(WrapperType& w) {
4736
if (not w.isPresent()) {
48-
throw edm::Exception(edm::errors::LogicError) << "Attempt to access an empty Wrapper bb";
37+
throw edm::Exception(edm::errors::LogicError) << "Attempt to access an empty Wrapper";
4938
}
5039
return w.bareProduct();
5140
}
@@ -75,6 +64,9 @@ namespace ngt {
7564
return;
7665
} else {
7766
auto& w = static_cast<WrapperType const&>(*getWrapperBasePtr());
67+
// Each serialiser stores a pointer to the wrapper used to initialize it as "const edm::WrapperBase*"
68+
// For serialisers used for writing, that were initialized with a non-const wrapper, the const_cast below is safe because the wrapper was originally non-const.
69+
// For serialisers used for reading, that were initialized with a const wrapper, this function cannot be called because it is not marked as const.
7870
if constexpr (std::is_same_v<typename edm::TrivialCopyTraits<T>::Properties, void>) {
7971
// if edm::TrivialCopyTraits<T>::Properties is void, call initialize() without any additional arguments
8072
edm::TrivialCopyTraits<T>::initialize(const_cast<WrapperType&>(w).bareProduct());
@@ -120,7 +112,7 @@ namespace ngt {
120112
template <typename T>
121113
inline std::vector<std::span<std::byte>> TrivialSerialiser<T>::trivialCopyRegions() {
122114
if constexpr (requires(T& t) { edm::TrivialCopyTraits<T>::regions(t); }) {
123-
auto& w = const_cast<edm::Wrapper<T>&>(static_cast<edm::Wrapper<T> const&>(*getWrapperBasePtr()));
115+
auto& w = const_cast<WrapperType&>(static_cast<WrapperType const&>(*getWrapperBasePtr()));
124116
T& obj = getWrappedObj_(w);
125117
return edm::TrivialCopyTraits<T>::regions(obj);
126118
} else {
@@ -140,19 +132,6 @@ namespace ngt {
140132
}
141133
}
142134

143-
template <typename T>
144-
class TrivialSerialiserSource : public TrivialSerialiserSourceBase {
145-
public:
146-
std::unique_ptr<TrivialSerialiserBase> initialize(edm::WrapperBase& wrapper) override {
147-
edm::Wrapper<T>& w = dynamic_cast<edm::Wrapper<T>&>(wrapper);
148-
return std::make_unique<TrivialSerialiser<T>>(w);
149-
}
150-
std::unique_ptr<const TrivialSerialiserBase> initialize(edm::WrapperBase const& wrapper) override {
151-
edm::Wrapper<T> const& w = dynamic_cast<edm::Wrapper<T> const&>(wrapper);
152-
return std::make_unique<const TrivialSerialiser<T>>(w);
153-
}
154-
};
155-
156135
} // namespace ngt
157136

158-
#endif
137+
#endif // TrivialSerialisation_Common_TrivialSerialiser_h

TrivialSerialisation/Common/interface/TrivialSerialiserBase.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
#define TrivialSerialisation_Common_interface_TrivialSerialiserBase_h
33

44
#include "DataFormats/Common/interface/AnyBuffer.h"
5-
#include "DataFormats/Common/interface/Wrapper.h"
65
#include "DataFormats/Common/interface/WrapperBase.h"
7-
// #include "TrivialSerialisation/Common/interface/TrivialSerialiser.h"
8-
// #include "TrivialSerialisation/Common/interface/TrivialSerialiserSourceFactory.h"
96

107
#include <span>
118
#include <vector>

TrivialSerialisation/Common/interface/TrivialSerialiserSourceBase.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@ namespace ngt {
99
public:
1010
TrivialSerialiserSourceBase() {};
1111

12-
virtual std::unique_ptr<TrivialSerialiserBase> initialize (edm::WrapperBase& wrapper) = 0;
13-
virtual std::unique_ptr<const TrivialSerialiserBase> initialize (const edm::WrapperBase& wrapper) = 0;
12+
virtual std::unique_ptr<TrivialSerialiserBase> initialize(edm::WrapperBase& wrapper) = 0;
13+
virtual std::unique_ptr<const TrivialSerialiserBase> initialize(const edm::WrapperBase& wrapper) = 0;
1414

1515
virtual ~TrivialSerialiserSourceBase() = default;
1616
};
1717
} // namespace ngt
1818

1919
#endif // TrivialSerialisation_Common_TrivialSerialiserSourceBase_h
20-
21-
22-

TrivialSerialisation/Common/interface/TrivialSerialiserSourceFactory.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#include "FWCore/PluginManager/interface/PluginFactory.h"
66

77
namespace ngt {
8-
using TrivialSerialiserSourceFactory = edmplugin::PluginFactory<ngt::TrivialSerialiserSourceBase *(void)>;
9-
// TODO: is the "void" necessary?
8+
using TrivialSerialiserSourceFactory = edmplugin::PluginFactory<ngt::TrivialSerialiserSourceBase *()>;
109
}
11-
#endif
10+
#endif // TrivialSerialisation_src_TrivialSerialiserSourceFactory_h

0 commit comments

Comments
 (0)