ATLAS Offline Software
Classes | Signals | Public Member Functions | Protected Member Functions | Private Slots | Private Attributes | List of all members
VP1AvailEvtsHttp Class Reference

#include <VP1AvailEvtsHttp.h>

Inheritance diagram for VP1AvailEvtsHttp:
Collaboration diagram for VP1AvailEvtsHttp:

Classes

class  Imp
 

Signals

void allLocalEventsChanged ()
 
void freshEventsChanged ()
 
void message (const QString &) const
 

Public Member Functions

 VP1AvailEvtsHttp (QString fileinfoUrl, int updateInterval, int timeCutForNew, QString tmpcopydir, int maxLocalFilesToKeep=-1, QObject *parent=0)
 
virtual ~VP1AvailEvtsHttp ()
 
virtual void init ()
 
QList< VP1EventFileallLocalEvents () const
 
QList< VP1EventFilefreshEvents () const
 
VP1EventFile newestEvent () const
 
void setCurrentEvent (int run, int event)
 
int maxLocalFilesToKeep () const
 

Protected Member Functions

QList< VP1EventFilefreshEvents (VP1EventFile newestEvt, const QList< VP1EventFile > &) const
 
void cleanupAndCheckForEventListChanges ()
 
void invalidateDirCache (const QString &dir)
 
bool inHistory (int run, int event) const
 
QList< VP1EventFileallEventFilesInDir (const QString &dir) const
 
QString tmpDir () const
 
QString tmpLocalFileDir () const
 
QString tmpActiveRetrievalDir ()
 
int timeCutForNew () const
 
bool requireNewestRunNumber () const
 
bool isConsideredFresh (const VP1EventFile &evt, const VP1EventFile &newestEvt) const
 
void messageDebug (const QString &) const
 

Private Slots

void fileInfoChanged ()
 
void fileInfoDownloadSuccessful (const QString &urltofile, const QString &localtargetfile)
 
void fileInfoDownloadFailed (const QString &error, const QString &urltofile, const QString &localtargetfile)
 
void eventFileDownloadSuccessful (const QString &urltofile, const QString &localtargetfile, const QString &data)
 
void eventFileDownloadFailed (const QString &error, const QString &urltofile, const QString &localtargetfile)
 
void examineEvtsOnServer ()
 
void actualCleanup ()
 
void actualCheckForEventListChanges ()
 

Private Attributes

Impm_d
 

Detailed Description

Definition at line 24 of file VP1AvailEvtsHttp.h.

Constructor & Destructor Documentation

◆ VP1AvailEvtsHttp()

VP1AvailEvtsHttp::VP1AvailEvtsHttp ( QString  fileinfoUrl,
int  updateInterval,
int  timeCutForNew,
QString  tmpcopydir,
int  maxLocalFilesToKeep = -1,
QObject *  parent = 0 
)

Definition at line 52 of file VP1AvailEvtsHttp.cxx.

59 {
60  m_d->theclass = this;
62  m_d->fileinfoUrl = fileinfoUrl;
63  QUrl url(fileinfoUrl);
64  if (url.isValid()) {
65  QString path = url.path();
66  QString infofilebasename = QFileInfo(path).fileName();
67  if (!infofilebasename.isEmpty()&&path.endsWith(infofilebasename)) {
68  m_d->baseUrl=fileinfoUrl;
69  m_d->baseUrl.chop(infofilebasename.count());
70  if (!QUrl(m_d->baseUrl).isValid())
71  m_d->baseUrl="";
72  else if (!m_d->baseUrl.endsWith("/"))
73  m_d->baseUrl += "/";
74  }
75  }
76 
77  m_d->evtsOnServer = 0;
78  connect(&(m_d->httpgetfile_fileinfo),SIGNAL(downloadSuccessful(const QString&,const QString&,const QString&)),
79  this,SLOT(fileInfoDownloadSuccessful(const QString&,const QString&)));
80  connect(&(m_d->httpgetfile_fileinfo),SIGNAL(downloadFailed(const QString&,const QString&,const QString&,const QString&)),
81  this,SLOT(fileInfoDownloadFailed(const QString&,const QString&,const QString&)));
82  connect(&(m_d->httpgetfile_events),SIGNAL(downloadSuccessful(const QString&,const QString&,const QString&)),
83  this,SLOT(eventFileDownloadSuccessful(const QString&,const QString&,const QString&)));
84  connect(&(m_d->httpgetfile_events),SIGNAL(downloadFailed(const QString&,const QString&,const QString&,const QString&)),
85  this,SLOT(eventFileDownloadFailed(const QString&,const QString&,const QString&)));
86 
87  m_d->webwatcher_fileinfo = new VP1WebWatcher(updateInterval*1000,this);
88  connect(m_d->webwatcher_fileinfo,SIGNAL(urlChanged(const QString&)),this,SLOT(fileInfoChanged()));
89 }

◆ ~VP1AvailEvtsHttp()

VP1AvailEvtsHttp::~VP1AvailEvtsHttp ( )
virtual

Definition at line 99 of file VP1AvailEvtsHttp.cxx.

100 {
101  delete m_d->evtsOnServer;
102  delete m_d;
103 }

Member Function Documentation

◆ actualCheckForEventListChanges

void VP1AvailEvents::actualCheckForEventListChanges ( )
privateslotinherited

Definition at line 161 of file VP1AvailEvents.cxx.

162 {
163  QList<VP1EventFile> allLocal = allLocalEvents();
164  QList<VP1EventFile> fresh = freshEvents();
165  if (m_d->lastAllLocal != allLocal) {
166  m_d->lastAllLocal = allLocal;
168  }
169  if (m_d->lastFresh != fresh) {
170  m_d->lastFresh = fresh;
172  }
173 }

◆ actualCleanup

void VP1AvailEvents::actualCleanup ( )
privateslotinherited

Definition at line 151 of file VP1AvailEvents.cxx.

152 {
153  //First we cleanup:
155 
156  //Then we schedule a check for event list changes:
157  QTimer::singleShot(10, this, SLOT(actualCheckForEventListChanges()));
158 }

◆ allEventFilesInDir()

QList< VP1EventFile > VP1AvailEvents::allEventFilesInDir ( const QString &  dir) const
protectedinherited

Definition at line 202 of file VP1AvailEvents.cxx.

203 {
204  if (dir.isEmpty())
205  return QList<VP1EventFile>();
206 
207  QFileInfo fi_dir(dir);
208  if (!fi_dir.exists()||!fi_dir.isDir())
209  return QList<VP1EventFile>();
210 
211  QDateTime modtime = fi_dir.lastModified();
212  if (abs(modtime.time().msecsTo(QTime::currentTime()))>50) {
213  std::map<QString,std::pair<QDateTime,QList<VP1EventFile> > >::iterator it = m_d->dircache.find(dir);
214  if (it!=m_d->dircache.end()&&it->second.first==modtime)
215  return it->second.second;
216  }
217 
218  QStringList filters;
219  filters << "*_*.pool.root";
220  //fixme
221  QDirIterator itDir(dir,filters,QDir::Files | QDir::NoDotAndDotDot | QDir::Readable | QDir::CaseSensitive);
222 
223  QList<VP1EventFile> l;
224  while (itDir.hasNext()) {
225  QString fn = itDir.next();
226  fn.replace("//","/");
228  if (evt.isValid())
229  l << evt;
230  else
231  message("Could not decode event file name: "+fn);
232  }
233 
234  std::sort(l.begin(), l.end());
235 
236  m_d->dircache[dir]=std::make_pair(modtime,l);
237  return l;
238 }

◆ allLocalEvents()

QList< VP1EventFile > VP1AvailEvents::allLocalEvents ( ) const
inherited

Definition at line 241 of file VP1AvailEvents.cxx.

242 {
244 }

◆ allLocalEventsChanged

void VP1AvailEvents::allLocalEventsChanged ( )
signalinherited

◆ cleanupAndCheckForEventListChanges()

void VP1AvailEvents::cleanupAndCheckForEventListChanges ( )
protectedinherited

Definition at line 176 of file VP1AvailEvents.cxx.

177 {
178  //We schedule the cleanup to take place shortly. The check for event
179  //list changes will be scheduled after the cleanup:
180 
181  //Then we schedule a check for event list changes:
182  QTimer::singleShot(10, this, SLOT(actualCleanup()));
183 
184 }

◆ eventFileDownloadFailed

void VP1AvailEvtsHttp::eventFileDownloadFailed ( const QString &  error,
const QString &  urltofile,
const QString &  localtargetfile 
)
privateslot

Definition at line 244 of file VP1AvailEvtsHttp.cxx.

245 {
246  message("Problems downloading "+urltofile+": "+error);
247  QFile::remove(localtargetfile);
248  m_d->getFileInfoLater();//Avoid stalling forever in case this is temporary.
250 }

◆ eventFileDownloadSuccessful

void VP1AvailEvtsHttp::eventFileDownloadSuccessful ( const QString &  urltofile,
const QString &  localtargetfile,
const QString &  data 
)
privateslot

Definition at line 228 of file VP1AvailEvtsHttp.cxx.

229 {
232 
233  if (!QFile::rename(localtargetfile,data)) {
234  message("Error: Could not move "+localtargetfile+" to "+data);
235  QFile::remove(localtargetfile);
237  m_d->getFileInfoLater();//Avoid stalling forever in case this is temporary.
238  return;
239  }
241 }

◆ examineEvtsOnServer

void VP1AvailEvtsHttp::examineEvtsOnServer ( )
privateslot

Definition at line 152 of file VP1AvailEvtsHttp.cxx.

153 {
154  m_d->restartExamineEvtsOnServerTimer();//To ensure we don't get events too closely spaced here.
156  return;
157  if (!m_d->evtsOnServer)
158  return;
159 
160  //Start download of one of the files from the server?
161  VP1EventFile evtToGet;
162  QString localfiledir = tmpLocalFileDir();
163  if (localfiledir.isEmpty()) {
164  message("Problems with temporary local event file directory.");
165  return;
166  }
167 
169  //We are looking for an event which was never seen before and not available locally:
170  if (!evt.isValid()||inHistory(evt.runNumber(),evt.eventNumber()))
171  continue;
172  if ( !QFile::exists ( localfiledir+evt.fileName() ) ) {
173  evtToGet=evt;
174  break;
175  }
176  }
177 
178  if (!evtToGet.isValid()&&m_d->examineEvtsOnServerTimer)
179  m_d->examineEvtsOnServerTimer->stop();//No need to check back regularly until we get new information.
180 
181  if (evtToGet.isValid()) {
182  //Before we get it, let us check that we don't already have 3
183  //fresh events locally which are newer than the one we are trying
184  //to download:
185  QList<VP1EventFile> freshLocalEvents = freshEvents();
186  unsigned nNewer(0);
187  for(VP1EventFile evt : freshLocalEvents) {
188  if (evt < evtToGet) {
189  ++nNewer;
190  if (nNewer>=3) {
191  return;
192  }
193  }
194  }
195  QString ad = tmpActiveRetrievalDir();
196  if (!ad.isEmpty()) {
197  QString url = m_d->baseUrl+evtToGet.fileName();
198  QString target = ad+evtToGet.fileName()+"_"+QString::number(Imp::ntmpdlcount++);
199  //A quick check that we are not already downloading that file currently:
201  QString err = m_d->httpgetfile_events.startDownload( url,target,evtToGet.md5Sum(),localfiledir+evtToGet.fileName());
202  if (!err.isEmpty()) {
203  message("Problems starting download of :" +url);
204  message(" => "+err);
205  }
206  } else {
207  //We are already downloading url - abort silently.
208  return;
209  }
210  } else {
211  message("Problems with temporary local download directory.");
212  }
213  }
214  invalidateDirCache(tmpActiveRetrievalDir());//Fixme: remove from here???
215 }

◆ fileInfoChanged

void VP1AvailEvtsHttp::fileInfoChanged ( )
privateslot

Definition at line 106 of file VP1AvailEvtsHttp.cxx.

107 {
109  message("Problems investigating "+m_d->fileinfoUrl);
111  return;
112  }
113  QString ad = tmpActiveRetrievalDir();
114  if (ad.isEmpty()) {
115  message("Error: No temporary retrieval directory set!");
116  m_d->getFileInfoLater();//Avoid stalling forever (however this is an unlikely error).
117  return;
118  }
119  QString target = ad+"downloadedfileinfo.txt";
120  if ( QFileInfo(target).exists() && !QFile(target).remove() ) {
121  message("ERROR: Could not remove old "+target);
122  m_d->getFileInfoLater();//Avoid stalling forever in case user fixes error (i.e. fixes permissions).
123  return;
124  }
126  if (!err.isEmpty()) {
127  message("Problems starting download to get file-info file: "+err);
128  m_d->getFileInfoLater();//Avoid stalling forever in case user fixes error (i.e. fixes net connection).
129  }
130 }

◆ fileInfoDownloadFailed

void VP1AvailEvtsHttp::fileInfoDownloadFailed ( const QString &  error,
const QString &  urltofile,
const QString &  localtargetfile 
)
privateslot

Definition at line 219 of file VP1AvailEvtsHttp.cxx.

220 {
221  message("Problems downloading "+urltofile+": "+error);
222  QFile::remove(localtargetfile);
224  m_d->getFileInfoLater();//Avoid stalling forever in case this is temporary.
225 }

◆ fileInfoDownloadSuccessful

void VP1AvailEvtsHttp::fileInfoDownloadSuccessful ( const QString &  urltofile,
const QString &  localtargetfile 
)
privateslot

Definition at line 133 of file VP1AvailEvtsHttp.cxx.

134 {
135  VP1EvtsOnServerInfo * newEvtsOnServerInfo = new VP1EvtsOnServerInfo(localtargetfile);
136  if (!newEvtsOnServerInfo->isValid()) {
137  message("Problems decoding info in file downloaded from "+urltofile);
138  message("Error: "+newEvtsOnServerInfo->error());
139  delete newEvtsOnServerInfo;
140  QFile::remove(localtargetfile);
141  m_d->getFileInfoLater();//Avoid stalling forever in case this is temporary.
143  return;
144  }
145  delete m_d->evtsOnServer;
146  m_d->evtsOnServer = newEvtsOnServerInfo;
147 
149 }

◆ freshEvents() [1/2]

QList< VP1EventFile > VP1AvailEvents::freshEvents ( ) const
inherited

Definition at line 129 of file VP1AvailEvents.cxx.

130 {
132 }

◆ freshEvents() [2/2]

QList< VP1EventFile > VP1AvailEvents::freshEvents ( VP1EventFile  newestEvt,
const QList< VP1EventFile > &  inputEventList 
) const
protectedinherited

Definition at line 110 of file VP1AvailEvents.cxx.

111 {
112  QList<VP1EventFile> l;
113  if (!newestEvt.isValid())
114  return l;
115  std::set<Imp::EventID>::const_iterator histIt, histItE(m_d->historySorted.end());
116  if (m_d->timeCutForNew==0) {
117  if (m_d->historySorted.find(Imp::evtToID(newestEvt))==histItE)
118  l << newestEvt;
119  return l;
120  }
121  for(VP1EventFile evt : inputEventList)
122  if (m_d->historySorted.find(Imp::evtToID(evt))==histItE && isConsideredFresh(evt,newestEvt))
123  l << evt;
124  return l;
125 }

◆ freshEventsChanged

void VP1AvailEvents::freshEventsChanged ( )
signalinherited

◆ inHistory()

bool VP1AvailEvents::inHistory ( int  run,
int  event 
) const
protectedinherited

Definition at line 187 of file VP1AvailEvents.cxx.

188 {
189  return m_d->historySorted.find(Imp::EventID(run,event))!=m_d->historySorted.end();
190 }

◆ init()

void VP1AvailEvtsHttp::init ( )
virtual

Implements VP1AvailEvents.

Definition at line 92 of file VP1AvailEvtsHttp.cxx.

93 {
94  m_d->webwatcher_fileinfo->addUrl(m_d->fileinfoUrl);//A signal will be triggered the first time the webwatcher knows anything about the url.
96 }

◆ invalidateDirCache()

void VP1AvailEvents::invalidateDirCache ( const QString &  dir)
protectedinherited

Definition at line 194 of file VP1AvailEvents.cxx.

195 {
196  std::map<QString,std::pair<QDateTime,QList<VP1EventFile> > >::iterator it = m_d->dircache.find(dir);
197  if (it!=m_d->dircache.end())
198  m_d->dircache.erase(it);
199 }

◆ isConsideredFresh()

bool VP1AvailEvents::isConsideredFresh ( const VP1EventFile evt,
const VP1EventFile newestEvt 
) const
protectedinherited

Definition at line 336 of file VP1AvailEvents.cxx.

337 {
338  //Notice: Logic here must be similar to logic in VP1EvtsOnServerInfo::events
339 
340  if (m_d->timeCutForNew==0) {
341  //Special case where only the newest event is fresh
342  return evt.rawTime()==newestEvt.rawTime() && evt.runNumber()==newestEvt.runNumber();
343  }
344  if (requireNewestRunNumber()&&evt.runNumber()!=newestEvt.runNumber())
345  return false;
346  const unsigned oldest_time = (m_d->timeCutForNew<0||unsigned(m_d->timeCutForNew)>newestEvt.rawTime()) ? 0 : newestEvt.rawTime() - m_d->timeCutForNew;
347  return evt.rawTime() >= oldest_time;
348 }

◆ maxLocalFilesToKeep()

int VP1AvailEvents::maxLocalFilesToKeep ( ) const
inherited

Definition at line 98 of file VP1AvailEvents.cxx.

99 {
100  return m_d->maxLocalFilesToKeep;
101 }

◆ message

void VP1AvailEvents::message ( const QString &  ) const
signalinherited

◆ messageDebug()

void VP1AvailEvents::messageDebug ( const QString &  s) const
protectedinherited

Definition at line 351 of file VP1AvailEvents.cxx.

352 {
353  std::cout<<VP1Msg::prefix_verbose()<<": "<<s.toStdString()<<std::endl;
354 }

◆ newestEvent()

VP1EventFile VP1AvailEvents::newestEvent ( ) const
inherited

Definition at line 135 of file VP1AvailEvents.cxx.

136 {
137  QList<VP1EventFile> evts(allLocalEvents());
138  if (evts.isEmpty())
139  return VP1EventFile();//invalid
140  return evts.front();
141 }

◆ requireNewestRunNumber()

bool VP1AvailEvents::requireNewestRunNumber ( ) const
inlineprotectedinherited

Definition at line 62 of file VP1AvailEvents.h.

62 { return false; /*fixme*/ }

◆ setCurrentEvent()

void VP1AvailEvents::setCurrentEvent ( int  run,
int  event 
)
inherited

Definition at line 144 of file VP1AvailEvents.cxx.

145 {
146  m_d->historyOrdered << Imp::EventID(run,event);
147  m_d->historySorted.insert(Imp::EventID(run,event));
148 }

◆ timeCutForNew()

int VP1AvailEvents::timeCutForNew ( ) const
protectedinherited

Definition at line 92 of file VP1AvailEvents.cxx.

93 {
94  return m_d->timeCutForNew;
95 }

◆ tmpActiveRetrievalDir()

QString VP1AvailEvents::tmpActiveRetrievalDir ( )
protectedinherited

Definition at line 277 of file VP1AvailEvents.cxx.

278 {
279  return m_d->attemptGenerationOfTmpSubdir("activeretrievals",m_d->tmpActiveRetrievalDir);
280 }

◆ tmpDir()

QString VP1AvailEvents::tmpDir ( ) const
protectedinherited

Definition at line 104 of file VP1AvailEvents.cxx.

105 {
106  return m_d->tmpDir;
107 }

◆ tmpLocalFileDir()

QString VP1AvailEvents::tmpLocalFileDir ( ) const
protectedinherited

Definition at line 283 of file VP1AvailEvents.cxx.

284 {
285  return m_d->attemptGenerationOfTmpSubdir("eventfiles",m_d->tmpLocalFileDir);
286 }

Member Data Documentation

◆ m_d

Imp* VP1AvailEvtsHttp::m_d
private

Definition at line 51 of file VP1AvailEvtsHttp.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
VP1AvailEvtsHttp::Imp::examineEvtsOnServerTimer
QTimer * examineEvtsOnServerTimer
Definition: VP1AvailEvtsHttp.cxx:35
VP1WebWatcher
Definition: VP1WebWatcher.h:29
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1AvailEvents::tmpLocalFileDir
QString tmpLocalFileDir() const
Definition: VP1AvailEvents.cxx:283
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:126
VP1AvailEvents::actualCheckForEventListChanges
void actualCheckForEventListChanges()
Definition: VP1AvailEvents.cxx:161
VP1AvailEvtsHttp::Imp::theclass
VP1AvailEvtsHttp * theclass
Definition: VP1AvailEvtsHttp.cxx:28
VP1AvailEvtsHttp::Imp::evtsOnServer
VP1EvtsOnServerInfo * evtsOnServer
Definition: VP1AvailEvtsHttp.cxx:34
VP1EvtsOnServerInfo::error
QString error() const
Definition: VP1EvtsOnServerInfo.cxx:59
VP1EventFile::md5Sum
QString md5Sum() const
Definition: VP1EventFile.cxx:170
VP1AvailEvtsHttp::fileInfoDownloadSuccessful
void fileInfoDownloadSuccessful(const QString &urltofile, const QString &localtargetfile)
Definition: VP1AvailEvtsHttp.cxx:133
VP1HttpGetFile::numberOfPendingDownloads
unsigned numberOfPendingDownloads() const
Definition: VP1HttpGetFile.cxx:67
VP1AvailEvtsHttp::Imp::ntmpdlcount
static unsigned ntmpdlcount
Definition: VP1AvailEvtsHttp.cxx:46
VP1AvailEvents::allLocalEvents
QList< VP1EventFile > allLocalEvents() const
Definition: VP1AvailEvents.cxx:241
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
VP1AvailEvents::allLocalEventsChanged
void allLocalEventsChanged()
VP1AvailEvtsHttp::Imp::baseUrl
QString baseUrl
Definition: VP1AvailEvtsHttp.cxx:30
VP1AvailEvtsHttp::Imp::httpgetfile_fileinfo
VP1HttpGetFile httpgetfile_fileinfo
Definition: VP1AvailEvtsHttp.cxx:32
skel.it
it
Definition: skel.GENtoEVGEN.py:423
VP1AvailEvents::cleanupAndCheckForEventListChanges
void cleanupAndCheckForEventListChanges()
Definition: VP1AvailEvents.cxx:176
VP1AvailEvents::tmpActiveRetrievalDir
QString tmpActiveRetrievalDir()
Definition: VP1AvailEvents.cxx:277
VP1AvailEvtsHttp::eventFileDownloadSuccessful
void eventFileDownloadSuccessful(const QString &urltofile, const QString &localtargetfile, const QString &data)
Definition: VP1AvailEvtsHttp.cxx:228
VP1AvailEvents::actualCleanup
void actualCleanup()
Definition: VP1AvailEvents.cxx:151
VP1EventFile::fileName
QString fileName() const
Definition: VP1EventFile.cxx:164
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
VP1AvailEvents::Imp::tmpDir
QString tmpDir
Definition: VP1AvailEvents.cxx:31
AthenaPoolTestRead.Files
Files
Definition: AthenaPoolTestRead.py:10
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
VP1EvtsOnServerInfo
Definition: VP1EvtsOnServerInfo.h:26
VP1AvailEvtsHttp::Imp::httpgetfile_events
VP1HttpGetFile httpgetfile_events
Definition: VP1AvailEvtsHttp.cxx:31
VP1AvailEvents::freshEventsChanged
void freshEventsChanged()
physics_parameters.url
string url
Definition: physics_parameters.py:27
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
VP1AvailEvents::message
void message(const QString &) const
VP1HttpGetFile::startDownload
QString startDownload(const QString &urltofile, const QString &localtargetfile, const QString &md5sum="", const QString &data="")
Definition: VP1HttpGetFile.cxx:73
VP1WebWatcher::lastResultToString
QString lastResultToString(const QString &url)
Definition: VP1WebWatcher.cxx:311
VP1AvailEvents::inHistory
bool inHistory(int run, int event) const
Definition: VP1AvailEvents.cxx:187
VP1WebWatcher::lastResult
RESULT lastResult(const QString &url)
Definition: VP1WebWatcher.cxx:291
VP1AvailEvents::freshEvents
QList< VP1EventFile > freshEvents() const
Definition: VP1AvailEvents.cxx:129
PixelModuleFeMask_create_db.remove
string remove
Definition: PixelModuleFeMask_create_db.py:83
python.getCurrentFolderTag.fn
fn
Definition: getCurrentFolderTag.py:65
VP1AvailEvents::newestEvent
VP1EventFile newestEvent() const
Definition: VP1AvailEvents.cxx:135
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
VP1AvailEvents::Imp::timeCutForNew
int timeCutForNew
Definition: VP1AvailEvents.cxx:30
VP1AvailEvents::Imp::cleanupTmpLocalFiles
void cleanupTmpLocalFiles()
Definition: VP1AvailEvents.cxx:289
VP1AvailEvents::Imp::maxLocalFilesToKeep
int maxLocalFilesToKeep
Definition: VP1AvailEvents.cxx:32
VP1WebWatcher::addUrl
void addUrl(const QString &)
Definition: VP1WebWatcher.cxx:226
test_pyathena.parent
parent
Definition: test_pyathena.py:15
VP1AvailEvents::timeCutForNew
int timeCutForNew() const
Definition: VP1AvailEvents.cxx:92
VP1HttpGetFile::isDownloading
bool isDownloading(const QString &urltofile) const
Definition: VP1HttpGetFile.cxx:137
VP1AvailEvtsHttp::fileInfoChanged
void fileInfoChanged()
Definition: VP1AvailEvtsHttp.cxx:106
run
Definition: run.py:1
VP1EventFile::isValid
bool isValid() const
Definition: VP1EventFile.cxx:158
VP1AvailEvents::requireNewestRunNumber
bool requireNewestRunNumber() const
Definition: VP1AvailEvents.h:62
VP1EventFile::runNumber
int runNumber() const
Definition: VP1EventFile.cxx:176
beamspotman.dir
string dir
Definition: beamspotman.py:623
VP1AvailEvents::m_d
Imp * m_d
Definition: VP1AvailEvents.h:78
VP1AvailEvtsHttp::fileInfoDownloadFailed
void fileInfoDownloadFailed(const QString &error, const QString &urltofile, const QString &localtargetfile)
Definition: VP1AvailEvtsHttp.cxx:219
VP1AvailEvents::VP1AvailEvents
VP1AvailEvents(int timeCutForNew, QString tmpdir, int maxLocalFilesToKeep=-1, QObject *parent=0)
Definition: VP1AvailEvents.cxx:71
VP1AvailEvents::Imp::historyOrdered
QList< EventID > historyOrdered
Definition: VP1AvailEvents.cxx:59
python.selection.number
number
Definition: selection.py:20
VP1EventFile::rawTime
unsigned rawTime() const
Definition: VP1EventFile.cxx:188
VP1AvailEvtsHttp::examineEvtsOnServer
void examineEvtsOnServer()
Definition: VP1AvailEvtsHttp.cxx:152
VP1EvtsOnServerInfo::isValid
bool isValid() const
Definition: VP1EvtsOnServerInfo.cxx:53
VP1AvailEvents::Imp::tmpActiveRetrievalDir
QString tmpActiveRetrievalDir
Definition: VP1AvailEvents.cxx:35
VP1AvailEvtsHttp::Imp::fileinfoUrl
QString fileinfoUrl
Definition: VP1AvailEvtsHttp.cxx:29
VP1AvailEvents::Imp::historySorted
std::set< EventID > historySorted
Definition: VP1AvailEvents.cxx:60
VP1AvailEvtsHttp::Imp::getFileInfoLater
void getFileInfoLater()
Definition: VP1AvailEvtsHttp.cxx:43
VP1AvailEvtsHttp::Imp::restartExamineEvtsOnServerTimer
void restartExamineEvtsOnServerTimer()
Definition: VP1AvailEvtsHttp.cxx:36
VP1AvailEvtsHttp::eventFileDownloadFailed
void eventFileDownloadFailed(const QString &error, const QString &urltofile, const QString &localtargetfile)
Definition: VP1AvailEvtsHttp.cxx:244
VP1AvailEvtsHttp::m_d
Imp * m_d
Definition: VP1AvailEvtsHttp.h:50
VP1AvailEvents::maxLocalFilesToKeep
int maxLocalFilesToKeep() const
Definition: VP1AvailEvents.cxx:98
VP1Msg::prefix_verbose
static const char * prefix_verbose()
Definition: VP1Msg.h:59
VP1AvailEvents::Imp::tmpLocalFileDir
QString tmpLocalFileDir
Definition: VP1AvailEvents.cxx:34
VP1EventFile
Definition: VP1EventFile.h:23
VP1AvailEvtsHttp::Imp::webwatcher_fileinfo
VP1WebWatcher * webwatcher_fileinfo
Definition: VP1AvailEvtsHttp.cxx:33
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
VP1AvailEvents::Imp::lastFresh
QList< VP1EventFile > lastFresh
Definition: VP1AvailEvents.cxx:62
VP1WebWatcher::EXISTS
@ EXISTS
Definition: VP1WebWatcher.h:53
VP1AvailEvents::allEventFilesInDir
QList< VP1EventFile > allEventFilesInDir(const QString &dir) const
Definition: VP1AvailEvents.cxx:202
VP1AvailEvents::Imp::lastAllLocal
QList< VP1EventFile > lastAllLocal
Definition: VP1AvailEvents.cxx:61
COOLRates.target
target
Definition: COOLRates.py:1106
python.dummyaccess.exists
def exists(filename)
Definition: dummyaccess.py:9
VP1AvailEvents::Imp::evtToID
static EventID evtToID(const VP1EventFile &evt)
Definition: VP1AvailEvents.cxx:55
VP1HttpGetFile::isDownloadingTo
bool isDownloadingTo(const QString &localtargetfile) const
Definition: VP1HttpGetFile.cxx:148
VP1AvailEvents::isConsideredFresh
bool isConsideredFresh(const VP1EventFile &evt, const VP1EventFile &newestEvt) const
Definition: VP1AvailEvents.cxx:336
error
Definition: IImpactPoint3dEstimator.h:70
VP1AvailEvents::Imp::attemptGenerationOfTmpSubdir
QString attemptGenerationOfTmpSubdir(const QString &preferredname, QString &cachevar)
Definition: VP1AvailEvents.cxx:248
VP1AvailEvents::Imp::dircache
std::map< QString, std::pair< QDateTime, QList< VP1EventFile > > > dircache
Definition: VP1AvailEvents.cxx:64
VP1EvtsOnServerInfo::events
QList< VP1EventFile > events(int timecut=-1, bool requireNewestRunNumber=false) const
Definition: VP1EvtsOnServerInfo.cxx:241
VP1AvailEvents::invalidateDirCache
void invalidateDirCache(const QString &dir)
Definition: VP1AvailEvents.cxx:194