JsonWritingTimeoutPoolOutputModule

Macros

Line Code
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
#ifndef DQMServices_StreamerIO_JsonWritingTimeoutPoolOutputModule_h
#define DQMServices_StreamerIO_JsonWritingTimeoutPoolOutputModule_h

#include "IOPool/Output/interface/TimeoutPoolOutputModule.h"

#include <string>
#include <utility>

namespace edm {
  class ConfigurationDescriptions;
  class ParameterSet;
}  // namespace edm

namespace dqmservices {

  class JsonWritingTimeoutPoolOutputModule : public edm::TimeoutPoolOutputModule {
  public:
    explicit JsonWritingTimeoutPoolOutputModule(edm::ParameterSet const& ps);
    ~JsonWritingTimeoutPoolOutputModule() override = default;

    static void fillDescriptions(edm::ConfigurationDescriptions&);

  protected:
    std::pair<std::string, std::string> physicalAndLogicalNameForNewFile() override;
    void doExtrasAfterCloseFile() override;

  protected:
    uint32_t const runNumber_;
    std::string const streamLabel_;
    std::string const outputPath_;

    uint32_t sequence_;
    std::string currentFileName_;
    std::string currentJsonName_;
  };

}  // namespace dqmservices

#endif  // DQMServices_StreamerIO_JsonWritingTimeoutPoolOutputModule_h