Scope
scope::PipelineController::Impl Class Reference

#include <PipelineController_p.h>

Inherits scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl.

Public Member Functions

 Impl (std::array< SynchronizedQueue< ScopeMessage< SCOPE_DAQCHUNKPTR_T >>, SCOPE_NAREAS > *const _iqueues, SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T >> *const _squeue, SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T >> *const _dqueue, const parameters::Scope &_parameters)
 
 ~Impl ()
 
void StopOne (const uint32_t &_a) override
 
void OnlineParameterUpdate (const parameters::Area &_areaparameters)
 
void SetScannerVector (const uint32_t &_area, ScannerVectorFrameBasicPtr _sv)
 
- Public Member Functions inherited from scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl
 Impl (const parameters::Scope &_parameters)
 
virtual void Start (const parameters::Scope &_params)
 
virtual void StopAll ()
 
virtual ControllerReturnStatus WaitForOne (const uint32_t &_a, const int32_t &_wait_time)
 
virtual ControllerReturnStatus WaitForAll (const int32_t &_wait_time)
 

Protected Member Functions

 Impl (const Impl &i)
 
Impl operator= (const Impl &i)
 
ControllerReturnStatus Run (StopCondition *const sc, const uint32_t &_area)
 

Protected Attributes

std::array< SynchronizedQueue< ScopeMessage< SCOPE_DAQCHUNKPTR_T > >, SCOPE_NAREAS > *const input_queues
 
SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T > > *const storage_queue
 
SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T > > *const display_queue
 
std::array< ScannerVectorFrameBasicPtr, SCOPE_NAREAS > scannervecs
 
std::array< std::mutex, SCOPE_NAREAS > online_update_mutexe
 
std::array< bool, SCOPE_NAREAS > online_updates
 
- Protected Attributes inherited from scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl
std::array< std::shared_future< ControllerReturnStatus >, N_ACTIVES > futures
 
std::array< StopCondition, N_ACTIVES > stops
 
parameters::Scope parameters
 

Detailed Description

The implementation class of the PipelineController.

Every area runs in one thread.

Definition at line 17 of file PipelineController_p.h.

Constructor & Destructor Documentation

scope::PipelineController::Impl::Impl ( const Impl i)
protected

disable copy

scope::PipelineController::Impl::Impl ( std::array< SynchronizedQueue< ScopeMessage< SCOPE_DAQCHUNKPTR_T >>, SCOPE_NAREAS > *const  _iqueues,
SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T >> *const  _squeue,
SynchronizedQueue< ScopeMessage< SCOPE_MULTIIMAGEPTR_T >> *const  _dqueue,
const parameters::Scope _parameters 
)
inlineexplicit

Connect queues and get scanner vectors and parameters.

Definition at line 180 of file PipelineController_p.h.

scope::PipelineController::Impl::~Impl ( )
inlinevirtual

It is important that this is virtual, only by this the correct destructor for the pimpl is called in derived classes (since we are using the one BaseControllerImpl* pointer to store also derived Impl class objects.

Reimplemented from scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl.

Definition at line 190 of file PipelineController_p.h.

Member Function Documentation

Impl scope::PipelineController::Impl::operator= ( const Impl i)
protected

disable assignment

ControllerReturnStatus scope::PipelineController::Impl::Run ( StopCondition *const  sc,
const uint32_t &  _area 
)
inlineprotectedvirtual

Main function for running pixel mapping.

It is executed asynchronously. For every area one Run function is executed (since PipelineController is derived from BaseController<SCOPE_NAREAS>).

Reimplemented from scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl.

Definition at line 48 of file PipelineController_p.h.

void scope::PipelineController::Impl::StopOne ( const uint32_t &  _a)
inlineoverridevirtual

Request one async worker function to stop by settings its StopCondition to true.

Parameters
[in]_awhich async to stop

Reimplemented from scope::BaseController< N_ACTIVES, STATIC_PIMPL >::Impl.

Definition at line 195 of file PipelineController_p.h.

void scope::PipelineController::Impl::OnlineParameterUpdate ( const parameters::Area _areaparameters)
inline

Handles update of parameters during scanning.

Definition at line 204 of file PipelineController_p.h.

void scope::PipelineController::Impl::SetScannerVector ( const uint32_t &  _area,
ScannerVectorFrameBasicPtr  _sv 
)
inline

Sets the pointers to the scanner vector.

Only called on startup.

Definition at line 213 of file PipelineController_p.h.

Member Data Documentation

std::array<SynchronizedQueue<ScopeMessage<SCOPE_DAQCHUNKPTR_T> >, SCOPE_NAREAS>* const scope::PipelineController::Impl::input_queues
protected

input queue from the DaqController

Definition at line 22 of file PipelineController_p.h.

SynchronizedQueue<ScopeMessage<SCOPE_MULTIIMAGEPTR_T> >* const scope::PipelineController::Impl::storage_queue
protected

output queue to the StorageController

Definition at line 25 of file PipelineController_p.h.

SynchronizedQueue<ScopeMessage<SCOPE_MULTIIMAGEPTR_T> >* const scope::PipelineController::Impl::display_queue
protected

output queue to the DisplayController

Definition at line 28 of file PipelineController_p.h.

std::array<ScannerVectorFrameBasicPtr, SCOPE_NAREAS> scope::PipelineController::Impl::scannervecs
protected

array with the scanner vectors

Definition at line 31 of file PipelineController_p.h.

std::array<std::mutex, SCOPE_NAREAS> scope::PipelineController::Impl::online_update_mutexe
protected

protection for online updates during live scanning

Definition at line 34 of file PipelineController_p.h.

std::array<bool, SCOPE_NAREAS> scope::PipelineController::Impl::online_updates
protected

trigger for online updates during live scanning

Definition at line 37 of file PipelineController_p.h.


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