CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
CmsShowMain Class Reference

#include <Fireworks/Core/interface/CmsShowMain.h>

Inheritance diagram for CmsShowMain:
CmsShowMainBase

Public Member Functions

void appendData ()
 
 CmsShowMain (int argc, char *argv[])
 
const fireworks::Contextcontext () const
 
void doExit ()
 
void fileChangedSlot (const TFile *file)
 
const fwlite::EventgetCurrentEvent () const
 
bool getVersionCheck () const
 
void notified (TSocket *)
 
void openData ()
 
void openDataViaURL ()
 
virtual void quit ()
 
void resetInitialization ()
 
virtual ~CmsShowMain ()
 
- Public Member Functions inherited from CmsShowMainBase
FWModelChangeManagerchangeManager ()
 
 CmsShowMainBase ()
 
FWColorManagercolorManager ()
 
const char * configFilename () const
 
FWConfigurationManagerconfigurationManager ()
 
void doFirstEvent ()
 
void doLastEvent ()
 
void doNextEvent ()
 
void doPreviousEvent ()
 
void draw ()
 
FWEventItemsManagereiManager ()
 
bool forward () const
 
const std::string & geometryFilename (void)
 
FWGeometrygetGeom ()
 
void goToRunEvent (edm::RunNumber_t, edm::LuminosityBlockNumber_t, edm::EventNumber_t)
 
FWGUIManagerguiManager ()
 
bool isPlaying () const
 
void loadGeometry ()
 
bool loop () const
 
FWModelChangeManagermodelChangeManager ()
 
void playBackward ()
 
void playForward ()
 
void registerPhysicsObject (const FWPhysicsObjectDesc &iItem)
 
void reloadConfiguration (const std::string &config)
 
FWSelectionManagerselectionManager ()
 
void setAutoSaveAllViewsFormat (const std::string &fmt)
 
void setConfigFilename (const std::string &f)
 
void setGeometryFilename (const std::string &filename)
 
void setIsPlaying (bool value)
 
void setPlayDelay (Float_t val)
 
void setPlayLoop ()
 
void setSimGeometryFilename (const std::string &filename)
 
void setup (FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
 
void setupActions ()
 
void setupAutoLoad (float x)
 
void setupConfiguration ()
 
void setupDebugSupport ()
 
void setupViewManagers ()
 
void startAutoLoadTimer ()
 
CmsShowTaskExecutorstartupTasks ()
 
void stopAutoLoadTimer ()
 
void unsetPlayLoop ()
 
FWViewManagerManagerviewManager ()
 
void writeToConfigFile (const std::string &config)
 
void writeToCurrentConfigFile ()
 
virtual ~CmsShowMainBase ()
 

Protected Member Functions

virtual void eventChangedImp ()
 
- Protected Member Functions inherited from CmsShowMainBase
void eventChangedSlot ()
 
void sendVersionInfo ()
 

Private Member Functions

virtual void autoLoadNewEvent ()
 
void checkLiveMode ()
 
virtual void checkPosition ()
 
 CmsShowMain (const CmsShowMain &)
 
void connectSocket ()
 
void filterButtonClicked ()
 
void loadGeometry ()
 
void navigatorChangedFilterState (int)
 
const CmsShowMainoperator= (const CmsShowMain &)
 
void postFiltering (bool)
 
void preFiltering ()
 
void reachedBeginning ()
 
void reachedEnd ()
 
void setLiveMode ()
 
void setupDataHandling ()
 
void setupSocket (unsigned int)
 
virtual void stopPlaying ()
 

Private Attributes

std::auto_ptr< fireworks::Contextm_context
 
std::vector< std::string > m_inputFiles
 
UInt_t m_lastXEventSerial
 
bool m_live
 
int m_liveTimeout
 
std::auto_ptr< SignalTimer > m_liveTimer
 
bool m_loadedAnyInputFile
 
std::auto_ptr
< FWLiteJobMetadataManager
m_metadataManager
 
std::auto_ptr< TMonitor > m_monitor
 
std::auto_ptr< CmsShowNavigatorm_navigator
 
bool m_noVersionCheck
 
const TFile * m_openFile
 
std::auto_ptr< CmsShowSearchFilesm_searchFiles
 

Detailed Description

Description: Displays an fwlite::Event in ROOT

Usage: <usage>

Definition at line 61 of file CmsShowMain.h.

Constructor & Destructor Documentation

CmsShowMain::CmsShowMain ( int  argc,
char *  argv[] 
)

Definition at line 111 of file CmsShowMain.cc.

References CmsShowTaskExecutor::addTask(), dir2webdir::argc, dirstructure::argv, CmsShowMainBase::configFilename(), connectSocket(), gather_cfg::cout, alignCSCRings::e, CmsShowMainBase::eiManager(), AutoLibraryLoader::enable(), FWColorPopup::EnableFreePalette(), cppFunctionSkipper::exception, cmsRelvalreport::exit, f, fmt, fwLog, CmsShowMainBase::geometryFilename(), CmsShowMainBase::guiManager(), kAdvancedRenderCommandOpt, kAdvancedRenderOpt, kAutoSaveAllViews, kChainCommandOpt, kConfigFileCommandOpt, kConfigFileOpt, kEnableFPE, fwlog::kError, kEveCommandOpt, kEveOpt, kFieldCommandOpt, kFreePaletteCommandOpt, kGeomFileCommandOpt, kGeomFileOpt, kHelpCommandOpt, kHelpOpt, fwlog::kInfo, kInputFilesCommandOpt, kInputFilesOpt, kLiveCommandOpt, kLogLevelCommandOpt, kLogLevelOpt, kLoopCommandOpt, kLoopOpt, kNoConfigFileCommandOpt, kNoConfigFileOpt, kNoVersionCheck, kPlainRootCommandOpt, kPlayCommandOpt, kPlayOpt, kPortCommandOpt, kRootInteractiveCommandOpt, kSimGeomFileCommandOpt, kSimGeomFileOpt, kSoftCommandOpt, FWMagField::kUser, kZeroWinOffsets, testEve_cfg::level, CmsShowMainBase::loadGeometry(), m_context, m_inputFiles, m_metadataManager, m_navigator, m_noVersionCheck, AlCaHLTBitMon_ParallelJobs::options, AlCaHLTBitMon_ParallelJobs::p, FWGUIManager::resetWMOffsets(), DTTTrigCorrFirst::run, CmsShowMainBase::setAutoSaveAllViewsFormat(), CmsShowMainBase::setConfigFilename(), FWEventItemsManager::setContext(), CmsShowMainBase::setGeometryFilename(), setLiveMode(), CmsShowNavigator::setMaxNumberOfFilesToChain(), CmsShowMainBase::setPlayLoop(), fwlog::setPresentLogLevel(), CmsShowMainBase::setSimGeometryFilename(), CmsShowMainBase::setup(), CmsShowMainBase::setupAutoLoad(), CmsShowMainBase::setupConfiguration(), setupDataHandling(), CmsShowMainBase::setupDebugSupport(), setupSocket(), CmsShowMainBase::setupViewManagers(), CmsShowTaskExecutor::startDoingTasks(), CmsShowMainBase::startupTasks(), and w().

112  : CmsShowMainBase(),
113  m_navigator(new CmsShowNavigator(*this)),
117  eiManager(),
118  colorManager(),
119  m_metadataManager.get())),
120  m_loadedAnyInputFile(false),
121  m_openFile(0),
122  m_live(false),
123  m_liveTimer(new SignalTimer()),
124  m_liveTimeout(600000),
126  m_noVersionCheck(false)
127 {
128  try {
129  TGLWidget* w = TGLWidget::Create(gClient->GetDefaultRoot(), kTRUE, kTRUE, 0, 10, 10);
130  delete w;
131  }
132  catch (std::exception& iException) {
133  fwLog(fwlog::kError) << "Failed creating an OpenGL window: " << iException.what() << "\n"
134  "Things to check:\n"
135  "- Is DISPLAY environment variable set?\n"
136  "- Are OpenGL libraries installed?\n"
137  "- If running remotely, make sure you use 'ssh -X' or 'ssh -Y'.\n"
138  "See also: https://twiki.cern.ch/twiki/bin/viewauth/CMS/WorkBookFireworks\n";
139  gSystem->Exit(1);
140  }
141 
142  eiManager()->setContext(m_context.get());
143 
144 
145  std::string descString(argv[0]);
146  descString += " [options] <data file>\nAllowed options";
147 
148  namespace po = boost::program_options;
149  po::options_description desc(descString);
150  desc.add_options()
151  (kInputFilesCommandOpt, po::value< std::vector<std::string> >(), "Input root files")
152  (kConfigFileCommandOpt, po::value<std::string>(), "Include configuration file")
153  (kGeomFileCommandOpt, po::value<std::string>(), "Include geometry file")
154  (kNoConfigFileCommandOpt, "Don't load any configuration file")
155  (kPlayCommandOpt, po::value<float>(), "Start in play mode with given interval between events in seconds")
156  (kPortCommandOpt, po::value<unsigned int>(), "Listen to port for new data files to open")
157  (kEveCommandOpt, "Show Eve browser to help debug problems")
158  (kLoopCommandOpt, "Loop events in play mode")
159  (kPlainRootCommandOpt, "Plain ROOT without event display")
160  (kRootInteractiveCommandOpt, "Enable root interactive prompt")
161  (kEnableFPE, "Enable detection of floating-point exceptions")
162  (kLogLevelCommandOpt, po::value<unsigned int>(), "Set log level starting from 0 to 4 : kDebug, kInfo, kWarning, kError")
163  (kAdvancedRenderCommandOpt, "Use advance options to improve rendering quality (anti-alias etc)")
164  (kSoftCommandOpt, "Try to force software rendering to avoid problems with bad hardware drivers")
165  (kChainCommandOpt, po::value<unsigned int>(), "Chain up to a given number of recently open files. Default is 1 - no chain")
166  (kLiveCommandOpt, "Enforce playback mode if a user is not using display")
167  (kFieldCommandOpt, po::value<double>(), "Set magnetic field value explicitly. Default is auto-field estimation")
168  (kFreePaletteCommandOpt, "Allow free color selection (requires special configuration!)")
169  (kAutoSaveAllViews, po::value<std::string>(), "Auto-save all views with given prefix (run_event_lumi_view.png is appended)")
170  (kZeroWinOffsets, "Disable auto-detection of window position offsets.")
171  (kNoVersionCheck, "No file version check.")
172  (kSimGeomFileCommandOpt,po::value<std::string>(), "Set simulation geometry file to browse")
173  (kHelpCommandOpt, "Display help message");
174  po::positional_options_description p;
175  p.add(kInputFilesOpt, -1);
176 
177  int newArgc = argc;
178  char **newArgv = argv;
179  po::variables_map vm;
180  //po::store(po::parse_command_line(newArgc, newArgv, desc), vm);
181  //po::notify(vm);
182  try{
183  po::store(po::command_line_parser(newArgc, newArgv).
184  options(desc).positional(p).run(), vm);
185 
186  po::notify(vm);
187  }
188  catch ( const std::exception& e)
189  {
190  // Return with exit status 0 to avoid generating crash reports
191 
192  fwLog(fwlog::kError) << e.what() << std::endl;
193  std::cout << desc <<std::endl;
194  exit(0);
195  }
196 
197  if(vm.count(kHelpOpt)) {
198  std::cout << desc <<std::endl;
199  exit(0);
200  }
201 
202  if(vm.count(kLogLevelOpt)) {
203  fwlog::LogLevel level = (fwlog::LogLevel)(vm[kLogLevelOpt].as<unsigned int>());
205  }
206 
207  if(vm.count(kPlainRootCommandOpt)) {
208  fwLog(fwlog::kInfo) << "Plain ROOT prompt requested" << std::endl;
209  return;
210  }
211 
212  const char* cmspath = gSystem->Getenv("CMSSW_BASE");
213  if(0 == cmspath) {
214  throw std::runtime_error("CMSSW_BASE environment variable not set");
215  }
216 
217  // input file
218  if (vm.count(kInputFilesOpt)) {
219  m_inputFiles = vm[kInputFilesOpt].as< std::vector<std::string> >();
220  }
221 
222  if (!m_inputFiles.size())
223  fwLog(fwlog::kInfo) << "No data file given." << std::endl;
224  else if (m_inputFiles.size() == 1)
225  fwLog(fwlog::kInfo) << "Input " << m_inputFiles.front() << std::endl;
226  else
227  fwLog(fwlog::kInfo) << m_inputFiles.size() << " input files; first: " << m_inputFiles.front() << ", last: " << m_inputFiles.back() << std::endl;
228 
229  // configuration file
230  if (vm.count(kConfigFileOpt)) {
231  setConfigFilename(vm[kConfigFileOpt].as<std::string>());
232  if (access(configFilename(), R_OK) == -1)
233  {
234  fwLog(fwlog::kError) << "Specified configuration file does not exist. Quitting.\n";
235  exit(0);
236  }
237  } else {
238  if (vm.count(kNoConfigFileOpt)) {
239  fwLog(fwlog::kInfo) << "No configuration is loaded, show everything.\n";
240  setConfigFilename("");
241  } else
242  setConfigFilename("default.fwc");
243  }
244  fwLog(fwlog::kInfo) << "Config " << configFilename() << std::endl;
245 
246  // geometry
247  if (vm.count(kGeomFileOpt)) {
248  setGeometryFilename(vm[kGeomFileOpt].as<std::string>());
249  } else {
250  // fwLog(fwlog::kInfo) << "No geom file name. Choosing default.\n";
251  setGeometryFilename("cmsGeom10.root");
252  }
253  fwLog(fwlog::kInfo) << "Geometry file " << geometryFilename() << "\n";
254 
255  if (vm.count(kSimGeomFileOpt)) {
256  setSimGeometryFilename(vm[kSimGeomFileOpt].as<std::string>());
257  } else {
258  setSimGeometryFilename("cmsSimGeom-14.root");
259  }
260  // Free-palette palette
261  if (vm.count(kFreePaletteCommandOpt)) {
263  fwLog(fwlog::kInfo) << "Palette restriction removed on user request!\n";
264  }
265  bool eveMode = vm.count(kEveOpt);
266 
267  //Delay creating guiManager and enabling autoloading until here so that if we have a 'help' request we don't
268  // open any graphics or build dictionaries
270 
271 
272  TEveManager::Create(kFALSE, eveMode ? "FIV" : "FI");
273 
274  setup(m_navigator.get(), m_context.get(), m_metadataManager.get());
275 
276  if (vm.count(kZeroWinOffsets))
277  {
279  fwLog(fwlog::kInfo) << "Window offsets reset on user request!\n";
280  }
281 
282  if ( vm.count(kAdvancedRenderOpt) )
283  {
284  TEveLine::SetDefaultSmooth(kTRUE);
285  }
286 
287  //figure out where to find macros
288  //tell ROOT where to find our macros
290  // first check if port is not occupied
291  if (vm.count(kPortCommandOpt)) {
292  f=boost::bind(&CmsShowMain::setupSocket, this, vm[kPortCommandOpt].as<unsigned int>());
293  startupTasks()->addTask(f);
294  }
295 
296  f=boost::bind(&CmsShowMainBase::loadGeometry,this);
297  startupTasks()->addTask(f);
298  f=boost::bind(&CmsShowMainBase::setupViewManagers,this);
299  startupTasks()->addTask(f);
300  f=boost::bind(&CmsShowMainBase::setupConfiguration,this);
301  startupTasks()->addTask(f);
302  f=boost::bind(&CmsShowMain::setupDataHandling,this);
303  startupTasks()->addTask(f);
304 
305  if (vm.count(kLoopOpt))
306  setPlayLoop();
307 
308  if (eveMode) {
309  f = boost::bind(&CmsShowMainBase::setupDebugSupport,this);
310  startupTasks()->addTask(f);
311  }
312  if(vm.count(kChainCommandOpt)) {
313  f = boost::bind(&CmsShowNavigator::setMaxNumberOfFilesToChain, m_navigator.get(), vm[kChainCommandOpt].as<unsigned int>());
314  startupTasks()->addTask(f);
315  }
316  if (vm.count(kPlayOpt)) {
317  f = boost::bind(&CmsShowMainBase::setupAutoLoad, this, vm[kPlayOpt].as<float>());
318  startupTasks()->addTask(f);
319  }
320 
321  if(vm.count(kLiveCommandOpt))
322  {
323  f = boost::bind(&CmsShowMain::setLiveMode, this);
324  startupTasks()->addTask(f);
325  }
326 
327  if(vm.count(kFieldCommandOpt))
328  {
329  m_context->getField()->setSource(FWMagField::kUser);
330  m_context->getField()->setUserField(vm[kFieldCommandOpt].as<double>());
331  }
332  if(vm.count(kAutoSaveAllViews)) {
333  std::string fmt = vm[kAutoSaveAllViews].as<std::string>();
334  fmt += "%u_%u_%u_%s.png";
336  }
337  if(vm.count(kNoVersionCheck)) {
338  m_noVersionCheck=true;
339  }
340  if(vm.count(kEnableFPE)) {
341  gSystem->SetFPEMask();
342  }
343 
344  if (vm.count(kPortCommandOpt)) {
345  f=boost::bind(&CmsShowMain::connectSocket, this);
346  startupTasks()->addTask(f);
347  }
348 
350 }
static const char *const kPlayCommandOpt
Definition: CmsShowMain.cc:83
static const char *const kNoVersionCheck
Definition: CmsShowMain.cc:105
static const char *const kGeomFileCommandOpt
Definition: CmsShowMain.cc:77
FWSelectionManager * selectionManager()
static const char *const kChainCommandOpt
Definition: CmsShowMain.cc:98
static const char *const kAutoSaveAllViews
Definition: CmsShowMain.cc:102
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
FWGUIManager * guiManager()
FWColorManager * colorManager()
static const char *const kZeroWinOffsets
Definition: CmsShowMain.cc:104
void setupSocket(unsigned int)
Definition: CmsShowMain.cc:652
static const char *const kFieldCommandOpt
Definition: CmsShowMain.cc:100
FWEventItemsManager * eiManager()
static const char *const kLogLevelOpt
Definition: CmsShowMain.cc:87
static const char *const kSimGeomFileOpt
Definition: CmsShowMain.cc:78
std::auto_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:116
static const char *const kNoConfigFileOpt
Definition: CmsShowMain.cc:80
const char * configFilename() const
void setup(FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
void setContext(fireworks::Context *)
static const char *const kConfigFileCommandOpt
Definition: CmsShowMain.cc:75
void setupDataHandling()
Definition: CmsShowMain.cc:592
FWModelChangeManager * changeManager()
static const char * fmt
Definition: Version.cc:9
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
static const char *const kAdvancedRenderOpt
Definition: CmsShowMain.cc:90
static const char *const kGeomFileOpt
Definition: CmsShowMain.cc:76
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
LogLevel
Definition: fwLog.h:36
void setupAutoLoad(float x)
static const char *const kPortCommandOpt
Definition: CmsShowMain.cc:95
void setGeometryFilename(const std::string &filename)
static const char *const kPlayOpt
Definition: CmsShowMain.cc:82
void resetWMOffsets()
CmsShowTaskExecutor * startupTasks()
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:129
static const char *const kEveOpt
Definition: CmsShowMain.cc:88
static const char *const kConfigFileOpt
Definition: CmsShowMain.cc:74
static const char *const kFreePaletteCommandOpt
Definition: CmsShowMain.cc:101
static const char *const kLoopOpt
Definition: CmsShowMain.cc:84
static const char *const kEveCommandOpt
Definition: CmsShowMain.cc:89
double f[11][100]
static const char *const kSoftCommandOpt
Definition: CmsShowMain.cc:94
static const char *const kLogLevelCommandOpt
Definition: CmsShowMain.cc:86
static const char *const kNoConfigFileCommandOpt
Definition: CmsShowMain.cc:81
static const char *const kEnableFPE
Definition: CmsShowMain.cc:103
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:119
void setLiveMode()
Definition: CmsShowMain.cc:792
void setSimGeometryFilename(const std::string &filename)
static const char *const kLiveCommandOpt
Definition: CmsShowMain.cc:99
static const char *const kHelpCommandOpt
Definition: CmsShowMain.cc:93
static const char *const kInputFilesCommandOpt
Definition: CmsShowMain.cc:73
#define fwLog(_level_)
Definition: fwLog.h:51
static const char *const kInputFilesOpt
Definition: CmsShowMain.cc:72
static const char *const kPlainRootCommandOpt
Definition: CmsShowMain.cc:96
tuple argc
Definition: dir2webdir.py:41
const TFile * m_openFile
Definition: CmsShowMain.h:121
void setAutoSaveAllViewsFormat(const std::string &fmt)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
static const char *const kRootInteractiveCommandOpt
Definition: CmsShowMain.cc:97
bool m_noVersionCheck
Definition: CmsShowMain.h:131
static const char *const kAdvancedRenderCommandOpt
Definition: CmsShowMain.cc:91
boost::function0< void > TaskFunctor
void addTask(const TaskFunctor &iTask)
int m_liveTimeout
Definition: CmsShowMain.h:128
void setMaxNumberOfFilesToChain(unsigned int i)
static void enable()
enable automatic library loading
tuple cout
Definition: gather_cfg.py:121
tuple level
Definition: testEve_cfg.py:34
const std::string & geometryFilename(void)
static void EnableFreePalette()
void setPresentLogLevel(LogLevel)
Definition: fwLog.cc:56
static const char *const kSimGeomFileCommandOpt
Definition: CmsShowMain.cc:79
void connectSocket()
Definition: CmsShowMain.cc:665
static const char *const kHelpOpt
Definition: CmsShowMain.cc:92
static const char *const kLoopCommandOpt
Definition: CmsShowMain.cc:85
void setConfigFilename(const std::string &f)
T w() const
CmsShowMain::~CmsShowMain ( )
virtual

Definition at line 356 of file CmsShowMain.cc.

References FWSelectionManager::clearSelection(), and CmsShowMainBase::selectionManager().

357 {
358  //avoids a seg fault from eve which happens if eve is terminated after the GUI is gone
360 }
FWSelectionManager * selectionManager()
CmsShowMain::CmsShowMain ( const CmsShowMain )
private

Member Function Documentation

void CmsShowMain::appendData ( )

Definition at line 469 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), m_loadedAnyInputFile, m_navigator, FWGUIManager::titleChanged(), and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

470 {
471  const char* kRootType[] = {"ROOT files","*.root", 0, 0};
472  TGFileInfo fi;
473  fi.fFileTypes = kRootType;
474  /* this is how things used to be done:
475  fi.fIniDir = ".";
476  this is bad because the destructor calls delete[] on fIniDir.
477  */
478  fi.fIniDir = new char[128];
479  strncpy(fi.fIniDir, ".", 127);
480  guiManager()->updateStatus("waiting for data file ...");
481  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
482  guiManager()->updateStatus("loading file ...");
483  if (fi.fFilename) {
484  m_navigator->appendFile(fi.fFilename, false, false);
485  m_loadedAnyInputFile = true;
486  checkPosition();
487  draw();
488  guiManager()->titleChanged(m_navigator->frameTitle());
489  }
490  guiManager()->clearStatus();
491 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:200
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::autoLoadNewEvent ( )
privatevirtual

Implements CmsShowMainBase.

Definition at line 524 of file CmsShowMain.cc.

References checkPosition(), CmsShowMainBase::draw(), FWGUIManager::enableActions(), CmsShowMainBase::forward(), CmsShowMainBase::guiManager(), CmsShowMainBase::loop(), m_loadedAnyInputFile, m_monitor, m_navigator, reachedEnd(), CmsShowMainBase::startAutoLoadTimer(), and CmsShowMainBase::stopAutoLoadTimer().

525 {
527 
528  // case when start with no input file
530  {
531  if (m_monitor.get())
533  return;
534  }
535 
536  bool reachedEnd = (forward() && m_navigator->isLastEvent()) || (!forward() && m_navigator->isFirstEvent());
537 
538  if (loop() && reachedEnd)
539  {
540  forward() ? m_navigator->firstEvent() : m_navigator->lastEvent();
541  draw();
542  }
543  else if (!reachedEnd)
544  {
545  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
546  draw();
547  }
548 
549  // stop loop in case no loop or monitor mode
550  if (reachedEnd && (loop() || m_monitor.get()) == kFALSE)
551  {
552  if (forward() && m_navigator->isLastEvent())
553  {
555  checkPosition();
556  }
557 
558  if ((!forward()) && m_navigator->isFirstEvent())
559  {
561  checkPosition();
562  }
563  }
564  else
566 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void enableActions(bool enable=true)
bool loop() const
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool forward() const
void reachedEnd()
void CmsShowMain::checkLiveMode ( )
private

Definition at line 814 of file CmsShowMain.cc.

References CmsShowMainBase::guiManager(), CmsShowMainBase::isPlaying(), m_lastXEventSerial, m_liveTimeout, m_liveTimer, FWGUIManager::playEventsAction(), and CSGContinuousAction::switchMode().

Referenced by setLiveMode().

815 {
816  m_liveTimer->TurnOff();
817 
818  TGX11 *x11 = dynamic_cast<TGX11*>(gVirtualX);
819  if (x11) {
820  XAnyEvent *ev = (XAnyEvent*) x11->GetNativeEvent();
821  // printf("serial %d \n",(int)ev->serial );
822 
823  if ( !isPlaying() && m_lastXEventSerial == ev->serial )
825  m_lastXEventSerial = ev->serial;
826  }
827 
828  m_liveTimer->SetTime((Long_t)(m_liveTimeout));
829  m_liveTimer->Reset();
830  m_liveTimer->TurnOn();
831 }
FWGUIManager * guiManager()
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:129
CSGContinuousAction * playEventsAction()
bool isPlaying() const
int m_liveTimeout
Definition: CmsShowMain.h:128
void CmsShowMain::checkPosition ( )
privatevirtual

Implements CmsShowMainBase.

Definition at line 571 of file CmsShowMain.cc.

References FWGUIManager::disableNext(), FWGUIManager::disablePrevious(), CSGAction::enable(), CmsShowMainFrame::enableNavigatorControls(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), CSGAction::isEnabled(), CmsShowMainBase::isPlaying(), CmsShowMainBase::loop(), m_monitor, m_navigator, and FWGUIManager::playEventsAction().

Referenced by appendData(), autoLoadNewEvent(), navigatorChangedFilterState(), notified(), openData(), openDataViaURL(), postFiltering(), setupDataHandling(), and stopPlaying().

572 {
573  if ((m_monitor.get() || loop() ) && isPlaying())
574  return;
575 
577 
578  if (m_navigator->isFirstEvent())
580 
581  if (m_navigator->isLastEvent())
582  {
583  guiManager()->disableNext();
584  // force enable play events action in --port mode
585  if (m_monitor.get() && !guiManager()->playEventsAction()->isEnabled())
587  }
588 }
FWGUIManager * guiManager()
void enable()
Definition: CSGAction.cc:285
bool loop() const
virtual Bool_t isEnabled() const
Definition: CSGAction.cc:309
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:200
void disablePrevious()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
CSGContinuousAction * playEventsAction()
bool isPlaying() const
void disableNext()
void CmsShowMain::connectSocket ( )
private

Definition at line 665 of file CmsShowMain.cc.

References m_monitor.

Referenced by CmsShowMain().

666 {
667  m_monitor->Connect("Ready(TSocket*)","CmsShowMain",this,"notified(TSocket*)");
668 
669 }
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
const fireworks::Context* CmsShowMain::context ( ) const
inline

Definition at line 81 of file CmsShowMain.h.

References m_context.

Referenced by CmsShowNavigator::getProcessList(), and CmsShowNavigator::updateFileFilters().

81 { return m_context.get(); };
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
void CmsShowMain::doExit ( )

Definition at line 386 of file CmsShowMain.cc.

References FWGUIManager::evePreTerminate(), CmsShowMainBase::guiManager(), and m_context.

Referenced by DieTimer::Notify().

387 {
388  // pre terminate eve
389  m_context->deleteEveElements();
391 
392  // sleep at least 150 ms
393  // windows in ROOT GUI are destroyed in 150 ms timeout after
394  gSystem->Sleep(151);
395  gSystem->ProcessEvents();
396  gSystem->ExitLoop();
397 }
FWGUIManager * guiManager()
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
void evePreTerminate()
void CmsShowMain::eventChangedImp ( )
protectedvirtual

Reimplemented from CmsShowMainBase.

Definition at line 434 of file CmsShowMain.cc.

References CmsShowMainBase::eventChangedImp(), getCurrentEvent(), CmsShowMainBase::guiManager(), m_metadataManager, m_navigator, m_openFile, and FWGUIManager::titleChanged().

435 {
437  guiManager()->titleChanged(m_navigator->frameTitle());
439 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:416
FWGUIManager * guiManager()
std::auto_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:116
virtual void eventChangedImp()
const TFile * m_openFile
Definition: CmsShowMain.h:121
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::fileChangedSlot ( const TFile *  file)

Definition at line 424 of file CmsShowMain.cc.

References mergeVDriftHistosByStation::file, getCurrentEvent(), CmsShowMainBase::guiManager(), m_metadataManager, m_navigator, m_openFile, and FWGUIManager::titleChanged().

Referenced by setupDataHandling().

425 {
426  m_openFile = file;
427  if (file)
428  guiManager()->titleChanged(m_navigator->frameTitle());
429 
431 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:416
FWGUIManager * guiManager()
std::auto_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:116
const TFile * m_openFile
Definition: CmsShowMain.h:121
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::filterButtonClicked ( )
private

Definition at line 764 of file CmsShowMain.cc.

References CmsShowMainBase::guiManager(), CmsShowNavigator::kWithdrawn, m_navigator, and FWGUIManager::showEventFilterGUI().

Referenced by setupDataHandling().

765 {
766  if (m_navigator->getFilterState() == CmsShowNavigator::kWithdrawn )
768  else
769  m_navigator->toggleFilterEnable();
770 }
FWGUIManager * guiManager()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void showEventFilterGUI()
const fwlite::Event * CmsShowMain::getCurrentEvent ( ) const

Definition at line 416 of file CmsShowMain.cc.

References m_navigator.

Referenced by eventChangedImp(), and fileChangedSlot().

417 {
418  if (m_navigator.get())
419  return static_cast<const fwlite::Event*>(m_navigator->getCurrentEvent());
420  return 0;
421 }
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool CmsShowMain::getVersionCheck ( ) const
inline

Definition at line 82 of file CmsShowMain.h.

References m_noVersionCheck.

Referenced by CmsShowNavigator::appendFile(), and CmsShowNavigator::openFile().

82 { return !m_noVersionCheck; }
bool m_noVersionCheck
Definition: CmsShowMain.h:131
void CmsShowMain::loadGeometry ( )
private
void CmsShowMain::navigatorChangedFilterState ( int  state)
private

Definition at line 753 of file CmsShowMain.cc.

References checkPosition(), CmsShowMainBase::guiManager(), m_navigator, FWGUIManager::setFilterButtonIcon(), and FWGUIManager::setFilterButtonText().

Referenced by setupDataHandling().

754 {
756  if (m_navigator->filesNeedUpdate() == false)
757  {
758  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
759  checkPosition();
760  }
761 }
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void setFilterButtonIcon(int)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void setFilterButtonText(const char *txt)
char state
Definition: procUtils.cc:75
void CmsShowMain::notified ( TSocket *  iSocket)

Definition at line 672 of file CmsShowMain.cc.

References checkPosition(), CmsShowMainBase::draw(), convertXMLtoSQLite_cfg::fileName, CmsShowMainBase::forward(), CmsShowMainBase::guiManager(), CmsShowMainBase::isPlaying(), m_live, m_loadedAnyInputFile, m_monitor, m_navigator, alignCSCRings::s, getRunRegistry::server, and FWGUIManager::updateStatus().

673 {
674  TServerSocket* server = dynamic_cast<TServerSocket*> (iSocket);
675  if (server)
676  {
677  TSocket* connection = server->Accept();
678  if (connection)
679  {
680  m_monitor->Add(connection);
681  std::stringstream s;
682  s << "received connection from "<<iSocket->GetInetAddress().GetHostName();
683  guiManager()->updateStatus(s.str().c_str());
684  }
685  }
686  else
687  {
688  char buffer[4096];
689  memset(buffer,0,sizeof(buffer));
690  if (iSocket->RecvRaw(buffer, sizeof(buffer)) <= 0)
691  {
692  m_monitor->Remove(iSocket);
693  //std::stringstream s;
694  //s << "closing connection to "<<iSocket->GetInetAddress().GetHostName();
695  //m_guiManager->updateStatus(s.str().c_str());
696  delete iSocket;
697  return;
698  }
699  std::string fileName(buffer);
700  std::string::size_type lastNonSpace = fileName.find_last_not_of(" \n\t");
701  if (lastNonSpace != std::string::npos)
702  {
703  fileName.erase(lastNonSpace+1);
704  }
705 
706  std::stringstream s;
707  s <<"New file notified '"<<fileName<<"'";
708  guiManager()->updateStatus(s.str().c_str());
709 
710  bool appended = m_navigator->appendFile(fileName, true, m_live);
711 
712  if (appended)
713  {
714  if (m_live && isPlaying() && forward())
715  m_navigator->activateNewFileOnNextEvent();
716  else if (!isPlaying())
717  checkPosition();
718 
719  // bootstrap case: --port and no input file
721  {
722  m_loadedAnyInputFile = true;
723  m_navigator->firstEvent();
724  if (!isPlaying())
725  draw();
726  }
727 
728  std::stringstream sr;
729  sr <<"New file registered '"<<fileName<<"'";
730  guiManager()->updateStatus(sr.str().c_str());
731  }
732  else
733  {
734  std::stringstream sr;
735  sr <<"New file NOT registered '"<<fileName<<"'";
736  guiManager()->updateStatus(sr.str().c_str());
737  }
738  }
739 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void updateStatus(const char *status)
uint16_t size_type
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool isPlaying() const
bool forward() const
void CmsShowMain::openData ( )

Definition at line 445 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), m_loadedAnyInputFile, m_navigator, and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

446 {
447  const char* kRootType[] = {"ROOT files","*.root", 0, 0};
448  TGFileInfo fi;
449  fi.fFileTypes = kRootType;
450  /* this is how things used to be done:
451  fi.fIniDir = ".";
452  this is bad because the destructor calls delete[] on fIniDir.
453  */
454  fi.fIniDir = new char[128];
455  strncpy(fi.fIniDir, ".", 127);
456  guiManager()->updateStatus("waiting for data file ...");
457  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
458  guiManager()->updateStatus("loading file ...");
459  if (fi.fFilename) {
460  m_navigator->openFile(fi.fFilename);
461  m_loadedAnyInputFile = true;
462  m_navigator->firstEvent();
463  checkPosition();
464  draw();
465  }
466  guiManager()->clearStatus();
467 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:200
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void CmsShowMain::openDataViaURL ( )

Definition at line 494 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), CmsShowMainBase::guiManager(), m_loadedAnyInputFile, m_navigator, m_searchFiles, and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

495 {
496  if (m_searchFiles.get() == 0) {
497  m_searchFiles = std::auto_ptr<CmsShowSearchFiles>(new CmsShowSearchFiles("",
498  "Open Remote Data Files",
499  guiManager()->getMainFrame(),
500  500, 400));
501  m_searchFiles->CenterOnParent(kTRUE,TGTransientFrame::kBottomRight);
502  }
503  std::string chosenFile = m_searchFiles->chooseFileFromURL();
504  if(!chosenFile.empty()) {
505  guiManager()->updateStatus("loading file ...");
506  if(m_navigator->openFile(chosenFile.c_str())) {
507  m_loadedAnyInputFile = true;
508  m_navigator->firstEvent();
509  checkPosition();
510  draw();
511  guiManager()->clearStatus();
512  } else {
513  guiManager()->updateStatus("failed to load data file");
514  }
515  }
516 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void updateStatus(const char *status)
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
std::auto_ptr< CmsShowSearchFiles > m_searchFiles
Definition: CmsShowMain.h:123
const CmsShowMain& CmsShowMain::operator= ( const CmsShowMain )
private
void CmsShowMain::postFiltering ( bool  doDraw)
private

Definition at line 780 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), CmsShowMainBase::guiManager(), m_navigator, and FWGUIManager::setFilterButtonText().

Referenced by setupDataHandling().

781 {
782  // called only filter is changed
783  guiManager()->clearStatus();
784  if (doDraw) draw();
785  checkPosition();
786  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
787 }
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void setFilterButtonText(const char *txt)
void CmsShowMain::preFiltering ( )
private

Definition at line 773 of file CmsShowMain.cc.

References CmsShowMainBase::guiManager(), and FWGUIManager::updateStatus().

774 {
775  // called only if filter has changed
776  guiManager()->updateStatus("Filtering events");
777 }
FWGUIManager * guiManager()
void updateStatus(const char *status)
void CmsShowMain::quit ( )
virtual

Implements CmsShowMainBase.

Definition at line 381 of file CmsShowMain.cc.

382 {
383  new DieTimer(this);
384 }
void CmsShowMain::reachedBeginning ( )
private
void CmsShowMain::reachedEnd ( )
private

Referenced by autoLoadNewEvent().

void CmsShowMain::resetInitialization ( )

Definition at line 441 of file CmsShowMain.cc.

441  {
442  //printf("Need to reset\n");
443 }
void CmsShowMain::setLiveMode ( )
private

Definition at line 792 of file CmsShowMain.cc.

References checkLiveMode(), m_live, m_liveTimeout, and m_liveTimer.

Referenced by CmsShowMain().

793 {
794  m_live = true;
795  m_liveTimer.reset(new SignalTimer());
796  m_liveTimer->timeout_.connect(boost::bind(&CmsShowMain::checkLiveMode,this));
797 
798  Window_t rootw, childw;
799  Int_t root_x, root_y, win_x, win_y;
800  UInt_t mask;
801  gVirtualX->QueryPointer(gClient->GetDefaultRoot()->GetId(),
802  rootw, childw,
803  root_x, root_y,
804  win_x, win_y,
805  mask);
806 
807 
808  m_liveTimer->SetTime(m_liveTimeout);
809  m_liveTimer->Reset();
810  m_liveTimer->TurnOn();
811 }
void checkLiveMode()
Definition: CmsShowMain.cc:814
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
unsigned int UInt_t
Definition: FUTypes.h:12
int m_liveTimeout
Definition: CmsShowMain.h:128
void CmsShowMain::setupDataHandling ( )
private

Definition at line 592 of file CmsShowMain.cc.

References CSGAction::activated, appendData(), FWEventItemsManager::begin(), checkPosition(), CmsShowMainBase::draw(), CmsShowMainBase::eiManager(), FWEventItemsManager::end(), fileChangedSlot(), filterButtonClicked(), FWGUIManager::filterButtonClicked_, alignmentValidation::fname, FWGUIManager::getAction(), CmsShowMainBase::guiManager(), m_inputFiles, m_loadedAnyInputFile, m_monitor, m_navigator, navigatorChangedFilterState(), openData(), openDataViaURL(), postFiltering(), cmsshow::sAppendData, FWGUIManager::setFilterButtonIcon(), CmsShowMainBase::setupActions(), CmsShowNavigator::showEventFilterGUI(), FWGUIManager::showEventFilterGUI_, cmsshow::sOpenData, cmsshow::sSearchFiles, FWGUIManager::updateEventFilterEnable(), and FWGUIManager::updateStatus().

Referenced by CmsShowMain().

593 {
594  guiManager()->updateStatus("Setting up data handling...");
595 
596 
597  // navigator filtering ->
598  m_navigator->fileChanged_.connect(boost::bind(&CmsShowMain::fileChangedSlot, this, _1));
599  m_navigator->editFiltersExternally_.connect(boost::bind(&FWGUIManager::updateEventFilterEnable, guiManager(), _1));
600  m_navigator->filterStateChanged_.connect(boost::bind(&CmsShowMain::navigatorChangedFilterState, this, _1));
601  m_navigator->postFiltering_.connect(boost::bind(&CmsShowMain::postFiltering, this, _1));
602 
603  // navigator fitlering <-
606 
607  // Data handling. File related and therefore not in the base class.
608  if (guiManager()->getAction(cmsshow::sOpenData) != 0)
609  guiManager()->getAction(cmsshow::sOpenData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openData));
610  if (guiManager()->getAction(cmsshow::sAppendData) != 0)
611  guiManager()->getAction(cmsshow::sAppendData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::appendData));
612  if (guiManager()->getAction(cmsshow::sSearchFiles) != 0)
614 
615  setupActions();
616  // init data from CmsShowNavigator configuration, can do this with signals since there were not connected yet
617  guiManager()->setFilterButtonIcon(m_navigator->getFilterState());
618 
619  for (unsigned int ii = 0; ii < m_inputFiles.size(); ++ii)
620  {
621  const std::string& fname = m_inputFiles[ii];
622  if (fname.empty())
623  continue;
624  guiManager()->updateStatus("loading data file ...");
625  if (!m_navigator->appendFile(fname, false, false))
626  {
627  guiManager()->updateStatus("failed to load data file");
628  }
629  else
630  {
631  m_loadedAnyInputFile = true;
632 
633  }
634  }
635 
637  {
638  m_navigator->firstEvent();
639  checkPosition();
640  draw();
641  }
642  else if (m_monitor.get() == 0 && (eiManager()->begin() != eiManager()->end()) )
643  {
644  if (m_inputFiles.empty())
645  openDataViaURL();
646  else
647  openData();
648  }
649 }
void fileChangedSlot(const TFile *file)
Definition: CmsShowMain.cc:424
void navigatorChangedFilterState(int)
Definition: CmsShowMain.cc:753
void openData()
Definition: CmsShowMain.cc:445
void showEventFilterGUI(const TGWindow *p)
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:206
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void appendData()
Definition: CmsShowMain.cc:469
void setFilterButtonIcon(int)
FWEventItemsManager * eiManager()
sigc::signal< void > activated
Definition: CSGAction.h:89
const std::string sOpenData
Definition: ActionsList.cc:12
void updateStatus(const char *status)
void filterButtonClicked()
Definition: CmsShowMain.cc:764
const std::string sAppendData
Definition: ActionsList.cc:13
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
sigc::signal< void, const TGWindow * > showEventFilterGUI_
Definition: FWGUIManager.h:207
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:119
void postFiltering(bool)
Definition: CmsShowMain.cc:780
const_iterator begin() const
NOTE: iterator is allowed to return a null object for items that have been removed.
CSGAction * getAction(const std::string name)
void updateEventFilterEnable(bool)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
string fname
main script
void openDataViaURL()
Definition: CmsShowMain.cc:494
const_iterator end() const
const std::string sSearchFiles
Definition: ActionsList.cc:14
void CmsShowMain::setupSocket ( unsigned int  iSocket)
private

Definition at line 652 of file CmsShowMain.cc.

References cmsRelvalreport::exit, fwLog, fwlog::kError, m_monitor, and getRunRegistry::server.

Referenced by CmsShowMain().

653 {
654  m_monitor = std::auto_ptr<TMonitor>(new TMonitor);
655  TServerSocket* server = new TServerSocket(iSocket,kTRUE);
656  if (server->GetErrorCode())
657  {
658  fwLog(fwlog::kError) << "CmsShowMain::setupSocket, can't create socket on port "<< iSocket << "." << std::endl;
659  exit(0);
660  }
661  m_monitor->Add(server);
662 }
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
#define fwLog(_level_)
Definition: fwLog.h:51
void CmsShowMain::stopPlaying ( )
privatevirtual

Implements CmsShowMainBase.

Definition at line 742 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::enableActions(), CmsShowMainBase::guiManager(), m_live, m_navigator, CmsShowMainBase::setIsPlaying(), and CmsShowMainBase::stopAutoLoadTimer().

743 {
745  if (m_live)
746  m_navigator->resetNewFileOnNextEvent();
747  setIsPlaying(false);
749  checkPosition();
750 }
virtual void checkPosition()
Definition: CmsShowMain.cc:571
FWGUIManager * guiManager()
void enableActions(bool enable=true)
void setIsPlaying(bool value)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115

Member Data Documentation

std::auto_ptr<fireworks::Context> CmsShowMain::m_context
private

Definition at line 117 of file CmsShowMain.h.

Referenced by CmsShowMain(), context(), and doExit().

std::vector<std::string> CmsShowMain::m_inputFiles
private

Definition at line 119 of file CmsShowMain.h.

Referenced by CmsShowMain(), and setupDataHandling().

UInt_t CmsShowMain::m_lastXEventSerial
private

Definition at line 129 of file CmsShowMain.h.

Referenced by checkLiveMode().

bool CmsShowMain::m_live
private

Definition at line 126 of file CmsShowMain.h.

Referenced by notified(), setLiveMode(), and stopPlaying().

int CmsShowMain::m_liveTimeout
private

Definition at line 128 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

std::auto_ptr<SignalTimer> CmsShowMain::m_liveTimer
private

Definition at line 127 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

bool CmsShowMain::m_loadedAnyInputFile
private
std::auto_ptr<FWLiteJobMetadataManager> CmsShowMain::m_metadataManager
private

Definition at line 116 of file CmsShowMain.h.

Referenced by CmsShowMain(), eventChangedImp(), and fileChangedSlot().

std::auto_ptr<TMonitor> CmsShowMain::m_monitor
private
std::auto_ptr<CmsShowNavigator> CmsShowMain::m_navigator
private
bool CmsShowMain::m_noVersionCheck
private

Definition at line 131 of file CmsShowMain.h.

Referenced by CmsShowMain(), and getVersionCheck().

const TFile* CmsShowMain::m_openFile
private

Definition at line 121 of file CmsShowMain.h.

Referenced by eventChangedImp(), and fileChangedSlot().

std::auto_ptr<CmsShowSearchFiles> CmsShowMain::m_searchFiles
private

Definition at line 123 of file CmsShowMain.h.

Referenced by openDataViaURL().