CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

edm::EventStreamHttpReader Class Reference

#include <EventStreamHttpReader.h>

Inheritance diagram for edm::EventStreamHttpReader:
edm::StreamerInputSource edm::InputSource edm::ProductRegistryHelper

List of all members.

Public Member Functions

 EventStreamHttpReader (edm::ParameterSet const &, edm::InputSourceDescription const &)
virtual EventPrincipalread ()
virtual ~EventStreamHttpReader ()

Private Member Functions

void readHeader ()

Private Attributes

const bool dropOldLumisectionEvents_
stor::EventServerProxy
< stor::EventConsumerRegistrationInfo
eventServerProxy_
unsigned int lastLS_

Detailed Description

Input source for event consumers that will get events from the Storage Manager Event Server. This does uses a HTTP get using the CURL library. The Storage Manager Event Server responses with a binary octet-stream. The product registry is also obtained through a HTTP get.

There is currently no test of the product registry against the consumer client product registry within the code. It should already be done if this was inherenting from the standard framework input source. Currently we inherit from InputSource.

Author:
mommsen
Revision:
1.22.10.2
Date:
2011/03/10 09:00:16

Definition at line 33 of file EventStreamHttpReader.h.


Constructor & Destructor Documentation

edm::EventStreamHttpReader::EventStreamHttpReader ( edm::ParameterSet const &  pset,
edm::InputSourceDescription const &  desc 
)

Definition at line 20 of file EventStreamHttpReader.cc.

References edm::ParameterSet::getUntrackedParameter(), and xuti::readHeader().

   :
  StreamerInputSource(pset, desc),
  eventServerProxy_(pset),
  dropOldLumisectionEvents_(pset.getUntrackedParameter<bool>("dropOldLumisectionEvents", false)),
  lastLS_(0)
  {
    // Default in StreamerInputSource is 'false'
    inputFileTransitionsEachEvent_ =
      pset.getUntrackedParameter<bool>("inputFileTransitionsEachEvent", true);

    readHeader();
  }
virtual edm::EventStreamHttpReader::~EventStreamHttpReader ( ) [inline, virtual]

Definition at line 41 of file EventStreamHttpReader.h.

{};

Member Function Documentation

EventPrincipal * edm::EventStreamHttpReader::read ( ) [virtual]

Implements edm::StreamerInputSource.

Definition at line 37 of file EventStreamHttpReader.cc.

References HeaderView::code(), runTheMatrix::data, edm::StreamerInputSource::deserializeEvent(), Header::DONE, dropOldLumisectionEvents_, eventServerProxy_, stor::EventServerProxy< RegInfo >::getOneEvent(), lastLS_, EventMsgView::lumi(), and edm::StreamerInputSource::setEndRun().

  {
    stor::CurlInterface::Content data;
    unsigned int currentLS(0);
    
    do
    {
      eventServerProxy_.getOneEvent(data);
      if ( data.empty() ) return 0;
      
      HeaderView hdrView(&data[0]);
      if (hdrView.code() == Header::DONE)
      {
        setEndRun();
        return 0;
      }
      
      EventMsgView eventView(&data[0]);
      currentLS = eventView.lumi();
    }
    while (
      dropOldLumisectionEvents_ &&
      lastLS_ > currentLS
    );
    
    lastLS_ = currentLS;
    return deserializeEvent(EventMsgView(&data[0]));
  }
void edm::EventStreamHttpReader::readHeader ( ) [private]

Member Data Documentation

Definition at line 50 of file EventStreamHttpReader.h.

Referenced by read().

Definition at line 48 of file EventStreamHttpReader.h.

Referenced by read(), and readHeader().

unsigned int edm::EventStreamHttpReader::lastLS_ [private]

Definition at line 51 of file EventStreamHttpReader.h.

Referenced by read().