Skip to content

Commit

Permalink
*using template in form one::OutputModule<one::WatchRuns,one::WatchLu…
Browse files Browse the repository at this point in the history
…minosityBlocks> is needed to compile (in analogy to PoolOutputModule)

*streamer output module now also needs beginLumi and endLumi handlers
  • Loading branch information
smorovic committed Sep 3, 2015
1 parent 0a25142 commit 1e5236a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
10 changes: 10 additions & 0 deletions IOPool/Streamer/interface/StreamerOutputModule.h
Expand Up @@ -26,6 +26,8 @@ namespace edm {
virtual void stop() const;
virtual void doOutputHeader(InitMsgBuilder const& init_message) const;
virtual void doOutputEvent(EventMsgBuilder const& msg) const;
virtual void beginLuminosityBlock(edm::LuminosityBlockPrincipal const&, edm::ModuleCallingContext const*) override;
virtual void endLuminosityBlock(edm::LuminosityBlockPrincipal const&, edm::ModuleCallingContext const*) override;

private:
std::auto_ptr<Consumer> c_;
Expand Down Expand Up @@ -67,6 +69,14 @@ namespace edm {
c_->doOutputEvent(msg); // You can't use msg in StreamerOutputModule after this point
}

template<typename Consumer>
void
StreamerOutputModule<Consumer>::beginLuminosityBlock(edm::LuminosityBlockPrincipal const&, edm::ModuleCallingContext const*) {}

template<typename Consumer>
void
StreamerOutputModule<Consumer>::endLuminosityBlock(edm::LuminosityBlockPrincipal const&, edm::ModuleCallingContext const*) {}

template<typename Consumer>
void
StreamerOutputModule<Consumer>::fillDescriptions(ConfigurationDescriptions& descriptions) {
Expand Down
2 changes: 1 addition & 1 deletion IOPool/Streamer/interface/StreamerOutputModuleBase.h
Expand Up @@ -16,7 +16,7 @@ namespace edm {

typedef detail::TriggerResultsBasedEventSelector::handle_t Trig;

class StreamerOutputModuleBase : public one::OutputModule<one::outputmodule::RunWatcher, one::outputmodule::LuminosityBlockWatcher> {
class StreamerOutputModuleBase : public one::OutputModule<one::WatchRuns, one::WatchLuminosityBlocks> {
public:
explicit StreamerOutputModuleBase(ParameterSet const& ps);
virtual ~StreamerOutputModuleBase();
Expand Down
6 changes: 3 additions & 3 deletions IOPool/Streamer/src/StreamerOutputModuleBase.cc
Expand Up @@ -57,7 +57,7 @@ namespace {
namespace edm {
StreamerOutputModuleBase::StreamerOutputModuleBase(ParameterSet const& ps) :
one::OutputModuleBase::OutputModuleBase(ps),
one::OutputModule<one::outputmodule::RunWatcher, one::outputmodule::LuminosityBlockWatcher>(ps),
one::OutputModule<one::WatchRuns, one::WatchLuminosityBlocks>(ps),
selections_(&keptProducts()[InEvent]),
maxEventSize_(ps.getUntrackedParameter<int>("max_event_size")),
useCompression_(ps.getUntrackedParameter<bool>("use_compression")),
Expand Down Expand Up @@ -107,14 +107,14 @@ namespace edm {
StreamerOutputModuleBase::~StreamerOutputModuleBase() {}

void
StreamerOutputModuleBase::doBeginRun_(RunPrincipal const&, ModuleCallingContext const*) {
StreamerOutputModuleBase::beginRun(RunPrincipal const&, ModuleCallingContext const*) {
start();
std::auto_ptr<InitMsgBuilder> init_message = serializeRegistry();
doOutputHeader(*init_message);
}

void
StreamerOutputModuleBase::doEndRun_(RunPrincipal const&, ModuleCallingContext const*) {
StreamerOutputModuleBase::endRun(RunPrincipal const&, ModuleCallingContext const*) {
stop();
}

Expand Down

0 comments on commit 1e5236a

Please sign in to comment.