-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Implement a GenericCloner
test module
#47504
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
This EDProducer will clone all the event products declared by its configuration, using their ROOT dictionaries.
cms-bot internal usage |
@makortel what do you think of this approach ? I don't mind moving stuff around, of course: consider this more of a prototype. |
please test |
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47504/43956
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
c559d9f
to
e5278a6
Compare
A new Pull Request was created by @fwyzard for master. It involves the following packages:
@Dr15Jones, @cmsbuild, @fwyzard, @makortel, @smuzaffar can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of this could actually go directly under DataFormats/Common
, only the specialisation of the Event
methods need to go in FWCore/Framework
.
Let me know if I should split and rearrange this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of this could actually go directly under DataFormats/Common
, only the specialisation of the Event
methods need to go in FWCore/Framework
.
Let me know if I should split and rearrange this.
return {object->metadata().size()}; | ||
} | ||
|
||
static std::vector<std::pair<void*, std::size_t>> regions(PortableDeviceCollection<T, TDev>& object) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To make the specialisation for PortableDeviceCollection
work, some kind of pass-through specialisation for edm::DeviceProduct
is still needed.
Pull request #47504 was updated. @Dr15Jones, @cmsbuild, @fwyzard, @makortel, @smuzaffar can you please check and sign again. |
4b85303
to
d32b15b
Compare
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47504/44032
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
d32b15b
to
4988fc2
Compare
please test |
@makortel @Dr15Jones this is now close enough to what I think I need, that I'd be happy for a first review. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47504/44033
|
Pull request #47504 was updated. @Dr15Jones, @fwyzard, @makortel, @smuzaffar can you please check and sign again. |
+1 Size: This PR adds an extra 44KB to repository Comparison SummarySummary:
|
PR description:
Specialise
Handle
andOrphanHandle
forWrapperBase
: this lets users produce and consume collections via their wrapper, using their run time type information (e.g. type name, type id, ...) instead of the compile time types. Implement integration test for this specialisations.Introduce a
MemcpyTraits
structure, that should be specialised for types that can be safelymemcpy
ed, without requiring a full ROOT streamer de/serialisation.Specialise the
MemcpyTraits
for arithmetic types andvector
s of arithmetic types, and allPortableObject
andPortableCollection
types.Implement
edmtest::GenericCloner
: thisEDProducer
will consume and clone all the event products declared by its configuration; a directmemcpy
will be used for types that support theMemcpyTraits
interface; the ROOT dictionaries will be use to serialise and deserialise the other tyepes.PR validation:
Unit tests pass.
If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:
May be backported to 15.0.x as part of the MPI work.