-
Notifications
You must be signed in to change notification settings - Fork 4.4k
/
Copy pathTestAlpakaGlobalProducerWithPtr.cc
41 lines (35 loc) · 1.78 KB
/
TestAlpakaGlobalProducerWithPtr.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "DataFormats/PortableTestObjects/interface/TestProductWithPtr.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h"
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h"
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h"
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
#include "HeterogeneousCore/AlpakaTest/interface/AlpakaESTestRecords.h"
#include "HeterogeneousCore/AlpakaTest/interface/alpaka/AlpakaESTestData.h"
#include "testPtrAlgoAsync.h"
namespace ALPAKA_ACCELERATOR_NAMESPACE {
/**
* This class is part of testing CopyToHost<T>::postCopy().
*/
class TestAlpakaGlobalProducerWithPtr : public global::EDProducer<> {
public:
TestAlpakaGlobalProducerWithPtr(edm::ParameterSet const& config)
: EDProducer<>(config), token_{produces()}, size_{config.getParameter<int>("size")} {}
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<int>("size");
descriptions.addWithDefaultLabel(desc);
}
void produce(edm::StreamID, device::Event& iEvent, device::EventSetup const& iSetup) const override {
iEvent.emplace(token_, testPtrAlgoAsync(iEvent.queue(), size_));
}
private:
const device::EDPutToken<portabletest::TestProductWithPtr<Device>> token_;
const int32_t size_;
};
} // namespace ALPAKA_ACCELERATOR_NAMESPACE
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
DEFINE_FWK_ALPAKA_MODULE(TestAlpakaGlobalProducerWithPtr);