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 194 of file VP1Prioritiser.cxx.

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

◆ ~VP1Prioritiser()

VP1Prioritiser::~VP1Prioritiser ( )
virtual

Definition at line 204 of file VP1Prioritiser.cxx.

205{
206 delete m_d->stopwatch;
207 delete m_d; m_d=0;
208}

Member Function Documentation

◆ beginTiming_Refresh()

double VP1Prioritiser::beginTiming_Refresh ( IVP1System * s)

Definition at line 245 of file VP1Prioritiser.cxx.

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

◆ channelCreated

void VP1Prioritiser::channelCreated ( IVP1ChannelWidget * cw)
slot

Definition at line 308 of file VP1Prioritiser.cxx.

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

◆ channelUncreated

void VP1Prioritiser::channelUncreated ( IVP1ChannelWidget * cw)
slot

Definition at line 322 of file VP1Prioritiser.cxx.

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

◆ elapsedTiming_Refresh()

double VP1Prioritiser::elapsedTiming_Refresh ( )

Definition at line 256 of file VP1Prioritiser.cxx.

257{
258 return static_cast<double>(m_d->stopwatch->elapsed());
259}

◆ endTiming_Refresh()

double VP1Prioritiser::endTiming_Refresh ( )

Definition at line 262 of file VP1Prioritiser.cxx.

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

◆ estimateRemainingCalcTime()

double VP1Prioritiser::estimateRemainingCalcTime ( ) const

Definition at line 233 of file VP1Prioritiser.cxx.

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

◆ getSystemsToEraseByPriority()

QList< IVP1System * > VP1Prioritiser::getSystemsToEraseByPriority ( )

Definition at line 221 of file VP1Prioritiser.cxx.

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

◆ nextErasedActiveSystemByPriority()

IVP1System * VP1Prioritiser::nextErasedActiveSystemByPriority ( )

Definition at line 211 of file VP1Prioritiser.cxx.

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

◆ setupSysItr()

void VP1Prioritiser::setupSysItr ( IVP1ChannelWidget * cw)
private

Definition at line 274 of file VP1Prioritiser.cxx.

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

◆ visibleChannelsChanged

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

Definition at line 292 of file VP1Prioritiser.cxx.

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

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: