Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

SctCalibrationController::CalibrationControllerImpl Class Reference

Implimentation of the CalibrationController interface. More...

#include <CalibrationControllerImpl.h>

Inheritance diagram for SctCalibrationController::CalibrationControllerImpl:

SctCalibrationController::Ipc::CalibrationController noncopyable IPCObject Sct_CalibrationController_T_CalibrationController

Public Member Functions

virtual ScanLibrary & getScanLibrary () const
virtual TestLibrary & getTestLibrary () const
virtual SequenceLibrary & getSequenceLibrary () const
virtual void doScan (Sct_SctApi_T_Scan *s)
virtual void doTest (boost::shared_ptr< TestRequest > t)
virtual void doSequence (boost::shared_ptr< SequenceRequest > r)
virtual void abort ()
virtual Sct_SctApi_T_ScangetScan (unsigned long runNumber, unsigned long scanNumber) const
virtual void setUpdateOption (Sct_CalibrationController_T_CalibrationController_UpdateOption)
void setApi (Sct_SctApi_T_SctApi &api)
void takeControl (unsigned int runNumber)
void giveupControl ()
void reset ()
void executeSequence (SequenceRequest &sr)
auto_ptr< TestexecuteTest (TestRequest &tr)
void executeScan (Sct_SctApi_T_Scan *s, unsigned int index)
Sct_SctApi_T_SctApigetApi () const
unsigned int getRunNumber () const
unsigned int getNextScanNumber () const
void applyChanges (const unsigned long runNumber, const unsigned long scanNumber, const std::list< std::string > &list)

Static Public Member Functions

CalibrationControllerImpl & initialize (RunControl &rc)
CalibrationControllerImpl & instance ()

Private Member Functions

 CalibrationControllerImpl (RunControl &rc)
virtual ~CalibrationControllerImpl ()
void updateStatus ()
bool isInControl ()
bool isBusy ()
void setBusy (bool busy)
void sctApiError (SctApiException &e)
void setNextScanNumber (unsigned int scanNumber)

Static Private Member Functions

std::list< string > getAllModulesForScan (Sct_SctApi_T_Scan *scan)
 Utility function: get all modules in all modulegroups for a particular scan.


Private Attributes

Sct_SctApi_T_SctApiapi
CalibrationControllerStatus status
RunControlrc
unsigned int runNumber
unsigned int nextScanNumber
bool abortNow
boost::thread_group m_sequence_request_thread_group

Static Private Attributes

CalibrationControllerImpl * inst

Friends

class SequenceRequestWorker

Detailed Description

Implimentation of the CalibrationController interface.

A singleton, it controls the synchronisation of the various tasks required during testing and calibration.

There is an abort method which allows the premature termination of a sequence or test after the end of the current scan.

Maintains a reference to a SctApi, to which it forwards requests for scans. Requests for sequencees, tests and scans can be made only when in control.

Publishes it's status in IS as CalibrationControllerStatus.

Definition at line 35 of file CalibrationControllerImpl.h.


Constructor & Destructor Documentation

SctCalibrationController::CalibrationControllerImpl::CalibrationControllerImpl RunControl   rc [private]
 

Definition at line 37 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::currentScanIndex, publish(), status, and updateStatus().

Referenced by initialize().

SctCalibrationController::CalibrationControllerImpl::~CalibrationControllerImpl   [private, virtual]
 

Definition at line 44 of file CalibrationControllerImpl.cpp.


Member Function Documentation

void SctCalibrationController::CalibrationControllerImpl::abort   [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 130 of file CalibrationControllerImpl.cpp.

References abortNow, CalibrationControllerStatus::BUSY, CalibrationControllerStatus::status, and status.

void SctCalibrationController::CalibrationControllerImpl::applyChanges const unsigned long    runNumber,
const unsigned long    scanNumber,
const std::list< std::string > &    list
 

Definition at line 232 of file CalibrationControllerImpl.cpp.

References Sct::IS::IONameIS::getModuleName(), Sct::File::read(), status, and CalibrationControllerStatus::updateOption.

Referenced by executeSequence().

void SctCalibrationController::CalibrationControllerImpl::doScan Sct_SctApi_T_Scan   s [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 463 of file CalibrationControllerImpl.cpp.

References doTest().

void SctCalibrationController::CalibrationControllerImpl::doSequence boost::shared_ptr< SequenceRequest >    r [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 473 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::BUSY, isBusy(), isInControl(), m_sequence_request_thread_group, SequenceRequestWorker, CalibrationControllerStatus::status, status, and updateStatus().

Referenced by doTest().

void SctCalibrationController::CalibrationControllerImpl::doTest boost::shared_ptr< TestRequest >    t [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 468 of file CalibrationControllerImpl.cpp.

References doSequence().

Referenced by doScan().

void SctCalibrationController::CalibrationControllerImpl::executeScan Sct_SctApi_T_Scan   s,
unsigned int    index
 

Definition at line 413 of file CalibrationControllerImpl.cpp.

References api, CalibrationControllerStatus::currentScanIndex, nextScanNumber, status, and updateStatus().

Referenced by executeTest().

void SctCalibrationController::CalibrationControllerImpl::executeSequence SequenceRequest &    sr
 

Definition at line 137 of file CalibrationControllerImpl.cpp.

References api, applyChanges(), TestData::COMPLETED, CalibrationControllerStatus::currentSequence, executeTest(), getAllModulesForScan(), getNextScanNumber(), getRunNumber(), runNumber, sctApiError(), status, and updateStatus().

Referenced by SctCalibrationController::SequenceRequestWorker::operator()().

auto_ptr< Test > SctCalibrationController::CalibrationControllerImpl::executeTest TestRequest &    tr
 

Definition at line 330 of file CalibrationControllerImpl.cpp.

References abortNow, api, CalibrationControllerStatus::currentTest, executeScan(), nextScanNumber, TestData::nScans, runNumber, TestData::runNumber, sctApiError(), setNextScanNumber(), TestData::startScanNumber, status, TestData::testName, TestData::testPoints, TestData::testPoints_size, TestData::testVariable, and updateStatus().

Referenced by executeSequence().

std::list< std::string > SctCalibrationController::CalibrationControllerImpl::getAllModulesForScan Sct_SctApi_T_Scan   scan [static, private]
 

Utility function: get all modules in all modulegroups for a particular scan.

Definition at line 201 of file CalibrationControllerImpl.cpp.

References status.

Referenced by executeSequence().

Sct_SctApi_T_SctApi * SctCalibrationController::CalibrationControllerImpl::getApi   const
 

Definition at line 54 of file CalibrationControllerImpl.cpp.

References api.

unsigned int SctCalibrationController::CalibrationControllerImpl::getNextScanNumber   const
 

Definition at line 115 of file CalibrationControllerImpl.cpp.

References nextScanNumber.

Referenced by executeSequence().

unsigned int SctCalibrationController::CalibrationControllerImpl::getRunNumber   const
 

Definition at line 111 of file CalibrationControllerImpl.cpp.

References runNumber.

Referenced by executeSequence().

Sct_SctApi_T_Scan * SctCalibrationController::CalibrationControllerImpl::getScan unsigned long    runNumber,
unsigned long    scanNumber
const [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 493 of file CalibrationControllerImpl.cpp.

ScanLibrary & SctCalibrationController::CalibrationControllerImpl::getScanLibrary   const [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 450 of file CalibrationControllerImpl.cpp.

SequenceLibrary & SctCalibrationController::CalibrationControllerImpl::getSequenceLibrary   const [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 458 of file CalibrationControllerImpl.cpp.

TestLibrary & SctCalibrationController::CalibrationControllerImpl::getTestLibrary   const [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 454 of file CalibrationControllerImpl.cpp.

void SctCalibrationController::CalibrationControllerImpl::giveupControl  
 

Definition at line 86 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::INCONTROL, CalibrationControllerStatus::LOADED, CalibrationControllerStatus::status, status, and updateStatus().

Referenced by SctCalibrationController::RunControl::exitRunning(), and SctCalibrationController::RunControl::sctApiError().

CalibrationControllerImpl & SctCalibrationController::CalibrationControllerImpl::initialize RunControl   rc [static]
 

Definition at line 439 of file CalibrationControllerImpl.cpp.

References CalibrationControllerImpl(), and inst.

CalibrationControllerImpl & SctCalibrationController::CalibrationControllerImpl::instance   [static]
 

Definition at line 444 of file CalibrationControllerImpl.cpp.

References inst.

bool SctCalibrationController::CalibrationControllerImpl::isBusy   [private]
 

Definition at line 99 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::BUSY, CalibrationControllerStatus::status, and status.

Referenced by doSequence().

bool SctCalibrationController::CalibrationControllerImpl::isInControl   [private]
 

Definition at line 95 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::INCONTROL, CalibrationControllerStatus::status, and status.

Referenced by doSequence().

void SctCalibrationController::CalibrationControllerImpl::reset  
 

Definition at line 62 of file CalibrationControllerImpl.cpp.

References api, CalibrationControllerStatus::LOADED, CalibrationControllerStatus::status, status, and updateStatus().

Referenced by SctCalibrationController::RunControl::resetaction().

void SctCalibrationController::CalibrationControllerImpl::sctApiError SctApiException   e [private]
 

Definition at line 68 of file CalibrationControllerImpl.cpp.

References api, CalibrationControllerStatus::ERROR, rc, SctCalibrationController::RunControl::SCTAPI_ACCESS_FAILURE, SctCalibrationController::RunControl::sctApiError(), CalibrationControllerStatus::status, status, updateStatus(), and Sct::AbstractThrowable::what().

Referenced by executeSequence(), and executeTest().

void SctCalibrationController::CalibrationControllerImpl::setApi Sct_SctApi_T_SctApi   api
 

Definition at line 58 of file CalibrationControllerImpl.cpp.

Referenced by SctCalibrationController::RunControl::loadaction().

void SctCalibrationController::CalibrationControllerImpl::setBusy bool    busy [private]
 

Definition at line 103 of file CalibrationControllerImpl.cpp.

References CalibrationControllerStatus::BUSY, CalibrationControllerStatus::INCONTROL, CalibrationControllerStatus::status, status, and updateStatus().

void SctCalibrationController::CalibrationControllerImpl::setNextScanNumber unsigned int    scanNumber [private]
 

Definition at line 119 of file CalibrationControllerImpl.cpp.

References api, and nextScanNumber.

Referenced by executeTest().

void SctCalibrationController::CalibrationControllerImpl::setUpdateOption Sct_CalibrationController_T_CalibrationController_UpdateOption    [virtual]
 

Implements SctCalibrationController::Ipc::CalibrationController.

Definition at line 300 of file CalibrationControllerImpl.cpp.

References status, CalibrationControllerStatus::updateOption, and updateStatus().

void SctCalibrationController::CalibrationControllerImpl::takeControl unsigned int    runNumber
 

Definition at line 75 of file CalibrationControllerImpl.cpp.

References api, CalibrationControllerStatus::INCONTROL, CalibrationControllerStatus::LOADED, nextScanNumber, CalibrationControllerStatus::status, status, and updateStatus().

Referenced by SctCalibrationController::RunControl::enterRunning().

void SctCalibrationController::CalibrationControllerImpl::updateStatus   [private]
 

Definition at line 498 of file CalibrationControllerImpl.cpp.

References status.

Referenced by CalibrationControllerImpl(), doSequence(), executeScan(), executeSequence(), executeTest(), giveupControl(), SctCalibrationController::SequenceRequestWorker::operator()(), reset(), sctApiError(), setBusy(), setUpdateOption(), and takeControl().


Friends And Related Function Documentation

friend class SequenceRequestWorker [friend]
 

Definition at line 96 of file CalibrationControllerImpl.h.

Referenced by doSequence().


Field Documentation

bool SctCalibrationController::CalibrationControllerImpl::abortNow [private]
 

Definition at line 91 of file CalibrationControllerImpl.h.

Referenced by abort(), and executeTest().

Sct_SctApi_T_SctApi* SctCalibrationController::CalibrationControllerImpl::api [private]
 

Definition at line 77 of file CalibrationControllerImpl.h.

Referenced by executeScan(), executeSequence(), executeTest(), getApi(), reset(), sctApiError(), setNextScanNumber(), and takeControl().

CalibrationControllerImpl * SctCalibrationController::CalibrationControllerImpl::inst [static, private]
 

Definition at line 515 of file CalibrationControllerImpl.cpp.

Referenced by initialize(), and instance().

boost::thread_group SctCalibrationController::CalibrationControllerImpl::m_sequence_request_thread_group [private]
 

Definition at line 94 of file CalibrationControllerImpl.h.

Referenced by doSequence().

unsigned int SctCalibrationController::CalibrationControllerImpl::nextScanNumber [private]
 

Definition at line 90 of file CalibrationControllerImpl.h.

Referenced by executeScan(), executeTest(), getNextScanNumber(), setNextScanNumber(), and takeControl().

RunControl& SctCalibrationController::CalibrationControllerImpl::rc [private]
 

Definition at line 88 of file CalibrationControllerImpl.h.

Referenced by sctApiError().

unsigned int SctCalibrationController::CalibrationControllerImpl::runNumber [private]
 

Definition at line 89 of file CalibrationControllerImpl.h.

Referenced by executeSequence(), executeTest(), and getRunNumber().

CalibrationControllerStatus SctCalibrationController::CalibrationControllerImpl::status [private]
 

Definition at line 87 of file CalibrationControllerImpl.h.

Referenced by abort(), applyChanges(), CalibrationControllerImpl(), doSequence(), executeScan(), executeSequence(), executeTest(), getAllModulesForScan(), giveupControl(), isBusy(), isInControl(), SctCalibrationController::SequenceRequestWorker::operator()(), reset(), sctApiError(), setBusy(), setUpdateOption(), takeControl(), and updateStatus().


The documentation for this class was generated from the following files:
Generated on Mon Dec 15 19:37:32 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3