CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Attributes | Friends
evf::FastMonitoringThread Class Reference

#include <FastMonitoringThread.h>

Classes

struct  MonitorData
 

Public Types

enum  InputState {
  inIgnore = 0, inInit, inWaitInput, inNewLumi,
  inNewLumiBusyEndingLS, inNewLumiIdleEndingLS, inRunEnd, inProcessingFile,
  inWaitChunk, inChunkReceived, inChecksumEvent, inCachedEvent,
  inReadEvent, inReadCleanup, inNoRequest, inNoRequestWithIdleThreads,
  inNoRequestWithGlobalEoL, inNoRequestWithEoLThreads, inSupFileLimit, inSupWaitFreeChunk,
  inSupWaitFreeChunkCopying, inSupWaitFreeThread, inSupWaitFreeThreadCopying, inSupBusy,
  inSupLockPolling, inSupLockPollingCopying, inSupNoFile, inSupNewFile,
  inSupNewFileWaitThreadCopying, inSupNewFileWaitThread, inSupNewFileWaitChunkCopying, inSupNewFileWaitChunk,
  inWaitInput_fileLimit, inWaitInput_waitFreeChunk, inWaitInput_waitFreeChunkCopying, inWaitInput_waitFreeThread,
  inWaitInput_waitFreeThreadCopying, inWaitInput_busy, inWaitInput_lockPolling, inWaitInput_lockPollingCopying,
  inWaitInput_runEnd, inWaitInput_noFile, inWaitInput_newFile, inWaitInput_newFileWaitThreadCopying,
  inWaitInput_newFileWaitThread, inWaitInput_newFileWaitChunkCopying, inWaitInput_newFileWaitChunk, inWaitChunk_fileLimit,
  inWaitChunk_waitFreeChunk, inWaitChunk_waitFreeChunkCopying, inWaitChunk_waitFreeThread, inWaitChunk_waitFreeThreadCopying,
  inWaitChunk_busy, inWaitChunk_lockPolling, inWaitChunk_lockPollingCopying, inWaitChunk_runEnd,
  inWaitChunk_noFile, inWaitChunk_newFile, inWaitChunk_newFileWaitThreadCopying, inWaitChunk_newFileWaitThread,
  inWaitChunk_newFileWaitChunkCopying, inWaitChunk_newFileWaitChunk, inCOUNT
}
 
enum  Macrostate {
  sInit = 0, sJobReady, sRunGiven, sRunning,
  sStopping, sShuttingDown, sDone, sJobEnded,
  sError, sErrorEnded, sEnd, sInvalid,
  MCOUNT
}
 

Public Member Functions

 FastMonitoringThread ()
 
void resetFastMonitor (std::string const &microStateDefPath, std::string const &fastMicroStateDefPath)
 
void start (void(FastMonitoringService::*fp)(), FastMonitoringService *cp)
 
void stop ()
 

Private Attributes

std::unique_ptr< jsoncollector::FastMonitorjsonMonitor_
 
MonitorData m_data
 
std::atomic< bool > m_stoprequest
 
std::shared_ptr< std::thread > m_thread
 
std::mutex monlock_
 

Friends

class FastMonitoringService
 

Detailed Description

Definition at line 15 of file FastMonitoringThread.h.

Member Enumeration Documentation

Enumerator
inIgnore 
inInit 
inWaitInput 
inNewLumi 
inNewLumiBusyEndingLS 
inNewLumiIdleEndingLS 
inRunEnd 
inProcessingFile 
inWaitChunk 
inChunkReceived 
inChecksumEvent 
inCachedEvent 
inReadEvent 
inReadCleanup 
inNoRequest 
inNoRequestWithIdleThreads 
inNoRequestWithGlobalEoL 
inNoRequestWithEoLThreads 
inSupFileLimit 
inSupWaitFreeChunk 
inSupWaitFreeChunkCopying 
inSupWaitFreeThread 
inSupWaitFreeThreadCopying 
inSupBusy 
inSupLockPolling 
inSupLockPollingCopying 
inSupNoFile 
inSupNewFile 
inSupNewFileWaitThreadCopying 
inSupNewFileWaitThread 
inSupNewFileWaitChunkCopying 
inSupNewFileWaitChunk 
inWaitInput_fileLimit 
inWaitInput_waitFreeChunk 
inWaitInput_waitFreeChunkCopying 
inWaitInput_waitFreeThread 
inWaitInput_waitFreeThreadCopying 
inWaitInput_busy 
inWaitInput_lockPolling 
inWaitInput_lockPollingCopying 
inWaitInput_runEnd 
inWaitInput_noFile 
inWaitInput_newFile 
inWaitInput_newFileWaitThreadCopying 
inWaitInput_newFileWaitThread 
inWaitInput_newFileWaitChunkCopying 
inWaitInput_newFileWaitChunk 
inWaitChunk_fileLimit 
inWaitChunk_waitFreeChunk 
inWaitChunk_waitFreeChunkCopying 
inWaitChunk_waitFreeThread 
inWaitChunk_waitFreeThreadCopying 
inWaitChunk_busy 
inWaitChunk_lockPolling 
inWaitChunk_lockPollingCopying 
inWaitChunk_runEnd 
inWaitChunk_noFile 
inWaitChunk_newFile 
inWaitChunk_newFileWaitThreadCopying 
inWaitChunk_newFileWaitThread 
inWaitChunk_newFileWaitChunkCopying 
inWaitChunk_newFileWaitChunk 
inCOUNT 

Definition at line 34 of file FastMonitoringThread.h.

34  {
35  inIgnore = 0,
36  inInit,
38  inNewLumi,
41  inRunEnd,
53  //supervisor thread and worker threads state
59  inSupBusy,
68  //combined with inWaitInput
84  //combined with inWaitChunk
100  inCOUNT
101  };

Constructor & Destructor Documentation

evf::FastMonitoringThread::FastMonitoringThread ( )
inline

Definition at line 198 of file FastMonitoringThread.h.

198 : m_stoprequest(false) {}
std::atomic< bool > m_stoprequest

Member Function Documentation

void evf::FastMonitoringThread::resetFastMonitor ( std::string const &  microStateDefPath,
std::string const &  fastMicroStateDefPath 
)
inline

Definition at line 200 of file FastMonitoringThread.h.

References jsonMonitor_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by evf::FastMonitoringService::preBeginJob().

200  {
201  std::string defGroup = "data";
202  jsonMonitor_.reset(new jsoncollector::FastMonitor(microStateDefPath, defGroup, false));
203  if (!fastMicroStateDefPath.empty())
204  jsonMonitor_->addFastPathDefinition(fastMicroStateDefPath, defGroup, false);
205  }
std::unique_ptr< jsoncollector::FastMonitor > jsonMonitor_
void evf::FastMonitoringThread::start ( void(FastMonitoringService::*)()  fp,
FastMonitoringService cp 
)
inline
void evf::FastMonitoringThread::stop ( )
inline

Definition at line 211 of file FastMonitoringThread.h.

References m_stoprequest, and m_thread.

Referenced by evf::FastMonitoringService::postEndJob().

211  {
212  assert(m_thread);
213  m_stoprequest = true;
214  m_thread->join();
215  }
std::shared_ptr< std::thread > m_thread
std::atomic< bool > m_stoprequest

Friends And Related Function Documentation

friend class FastMonitoringService
friend

Definition at line 225 of file FastMonitoringThread.h.

Member Data Documentation

std::unique_ptr<jsoncollector::FastMonitor> evf::FastMonitoringThread::jsonMonitor_
private
MonitorData evf::FastMonitoringThread::m_data
private
std::atomic<bool> evf::FastMonitoringThread::m_stoprequest
private

Definition at line 218 of file FastMonitoringThread.h.

Referenced by stop().

std::shared_ptr<std::thread> evf::FastMonitoringThread::m_thread
private

Definition at line 219 of file FastMonitoringThread.h.

Referenced by start(), and stop().

std::mutex evf::FastMonitoringThread::monlock_
private