ATLAS Offline Software
Loading...
Searching...
No Matches
VP1Prioritiser Class Reference

#include <VP1Prioritiser.h>

Inheritance diagram for VP1Prioritiser:
Collaboration diagram for VP1Prioritiser:

Classes

class  Imp

Public Slots

void visibleChannelsChanged (const QSet< IVP1ChannelWidget * > &vis, const QSet< IVP1ChannelWidget * > &soonvis, const double &soonvisbonus)
void channelCreated (IVP1ChannelWidget *)
void channelUncreated (IVP1ChannelWidget *)

Public Member Functions

 VP1Prioritiser (QObject *parent)
virtual ~VP1Prioritiser ()
double beginTiming_Refresh (IVP1System *)
double elapsedTiming_Refresh ()
double endTiming_Refresh ()
IVP1SystemnextErasedActiveSystemByPriority ()
QList< IVP1System * > getSystemsToEraseByPriority ()
double estimateRemainingCalcTime () const

Private Member Functions

void setupSysItr (IVP1ChannelWidget *cw)

Private Attributes

Impm_d

Detailed Description

Definition at line 22 of file VP1Prioritiser.h.

Constructor & Destructor Documentation

◆ VP1Prioritiser()

VP1Prioritiser::VP1Prioritiser ( QObject * parent)

Definition at line 191 of file VP1Prioritiser.cxx.

192 : QObject(parent), m_d(new Imp)
193{
194 m_d->prioritiser=this;
195 m_d->stopwatch = new QElapsedTimer();
196 m_d->currenttimedsystem=0;
197 m_d->soonvisbonus=0;
198}

◆ ~VP1Prioritiser()

VP1Prioritiser::~VP1Prioritiser ( )
virtual

Definition at line 201 of file VP1Prioritiser.cxx.

202{
203 delete m_d->stopwatch;
204 delete m_d; m_d=0;
205}

Member Function Documentation

◆ beginTiming_Refresh()

double VP1Prioritiser::beginTiming_Refresh ( IVP1System * s)

Definition at line 242 of file VP1Prioritiser.cxx.

243{
244 assert(!m_d->currenttimedsystem);
245 m_d->stopwatch->start();
246 m_d->currenttimedsystem=s;
247 assert(m_d->sys2info.contains(s));
248 return m_d->sys2info[s]->refreshtime();
249}

◆ channelCreated

void VP1Prioritiser::channelCreated ( IVP1ChannelWidget * cw)
slot

Definition at line 305 of file VP1Prioritiser.cxx.

306{
307 bool visible = m_d->visiblechannels.contains(cw);
308 bool soonvisible = m_d->soonvisiblechannels.contains(cw);
309 assert(!(visible&&soonvisible));
310 for (setupSysItr(cw);m_d->itsys!=m_d->itsysE;++m_d->itsys) {
311 assert(!m_d->sys2info.contains(*(m_d->itsys)));
312 Imp::SystemInfo* info = new Imp::SystemInfo(*(m_d->itsys),m_d,cw,
314 m_d->sys2info.insert(*(m_d->itsys),info);
315 }
316}
void setupSysItr(IVP1ChannelWidget *cw)

◆ channelUncreated

void VP1Prioritiser::channelUncreated ( IVP1ChannelWidget * cw)
slot

Definition at line 319 of file VP1Prioritiser.cxx.

320{
321 for (setupSysItr(cw);m_d->itsys!=m_d->itsysE;++m_d->itsys) {
322 assert(m_d->sys2info.contains(*(m_d->itsys)));
323 delete m_d->sys2info[*(m_d->itsys)];
324 m_d->sys2info.remove(*(m_d->itsys));
325 }
326 if (m_d->visiblechannels.contains(cw))
327 m_d->visiblechannels.remove(cw);
328 if (m_d->soonvisiblechannels.contains(cw))
329 m_d->soonvisiblechannels.remove(cw);
330}

◆ elapsedTiming_Refresh()

double VP1Prioritiser::elapsedTiming_Refresh ( )

Definition at line 253 of file VP1Prioritiser.cxx.

254{
255 return static_cast<double>(m_d->stopwatch->elapsed());
256}

◆ endTiming_Refresh()

double VP1Prioritiser::endTiming_Refresh ( )

Definition at line 259 of file VP1Prioritiser.cxx.

260{
261 assert(m_d->currenttimedsystem);
262 double timing = static_cast<double>(m_d->stopwatch->elapsed());
263 if (m_d->sys2info.contains(m_d->currenttimedsystem)) {//This check, since the corresponding channel might have become uncreated in the meantime.
264 m_d->sys2info[m_d->currenttimedsystem]->addTimeMeasurement(timing);
265 }
266 m_d->currenttimedsystem=0;
267 return timing;
268}

◆ estimateRemainingCalcTime()

double VP1Prioritiser::estimateRemainingCalcTime ( ) const

Definition at line 230 of file VP1Prioritiser.cxx.

231{
232 double tmp(0);
233 QHash<IVP1System*,Imp::SystemInfo*>::iterator itE = m_d->sys2info.end();
234 for (QHash<IVP1System*,Imp::SystemInfo*>::iterator it=m_d->sys2info.begin();it!=itE;++it) {
235 if ( it.key()->state()==IVP1System::ERASED &&it.key()->activeState()==IVP1System::ON )
236 tmp += it.value()->refreshtime();
237 }
238 return tmp;
239}

◆ getSystemsToEraseByPriority()

QList< IVP1System * > VP1Prioritiser::getSystemsToEraseByPriority ( )

Definition at line 218 of file VP1Prioritiser.cxx.

218 {
219 QList<IVP1System*> tmp;
220 Imp::Pri2SysMap::iterator itE = m_d->priority2sys.end();
221 for (Imp::Pri2SysMap::iterator it=m_d->priority2sys.begin();it!=itE;++it) {
222 if ( it->second->state()==IVP1System::REFRESHED )
223 tmp << it->second;
224 }
225 return tmp;
226}

◆ nextErasedActiveSystemByPriority()

IVP1System * VP1Prioritiser::nextErasedActiveSystemByPriority ( )

Definition at line 208 of file VP1Prioritiser.cxx.

208 {
209 Imp::Pri2SysMap::iterator itE = m_d->priority2sys.end();
210 for (Imp::Pri2SysMap::iterator it=m_d->priority2sys.begin();it!=itE;++it) {
211 if ( it->second->state()==IVP1System::ERASED &&it->second->activeState()==IVP1System::ON )
212 return it->second;
213 }
214 return 0;
215}

◆ setupSysItr()

void VP1Prioritiser::setupSysItr ( IVP1ChannelWidget * cw)
private

Definition at line 271 of file VP1Prioritiser.cxx.

271 {
272 m_d->itsys = cw->systems().begin();
273 m_d->itsysE = cw->systems().end();
274}
const std::set< IVP1System * > & systems()

◆ visibleChannelsChanged

void VP1Prioritiser::visibleChannelsChanged ( const QSet< IVP1ChannelWidget * > & vis,
const QSet< IVP1ChannelWidget * > & soonvis,
const double & soonvisbonus )
slot

Definition at line 289 of file VP1Prioritiser.cxx.

292{
293 if (m_d->visiblechannels==newvis&&m_d->soonvisiblechannels==newsoonvis&&m_d->soonvisbonus==soonvisbonus)
294 return;
295 m_d->updateSysinfoWithVisibilityState(m_d->visiblechannels,Imp::SystemInfo::NOTVISIBLE);
296 m_d->updateSysinfoWithVisibilityState(m_d->soonvisiblechannels,Imp::SystemInfo::NOTVISIBLE);
297 m_d->updateSysinfoWithVisibilityState(newvis,Imp::SystemInfo::VISIBLE);
298 m_d->updateSysinfoWithVisibilityState(newsoonvis,Imp::SystemInfo::SOONVISIBLE);
299 m_d->visiblechannels = newvis;
300 m_d->soonvisiblechannels = newsoonvis;
301 m_d->soonvisbonus = soonvisbonus;
302}

Member Data Documentation

◆ m_d

Imp* VP1Prioritiser::m_d
private

Definition at line 46 of file VP1Prioritiser.h.


The documentation for this class was generated from the following files: