Scope
PipelineController.h
1 #pragma once
2 #include "ScopeDefines.h"
3 #include "BaseController.h"
4 #include "BaseController_p.h"
5 
6 // Forward declarations
7 template<class T> class SynchronizedQueue;
8 template<class T> class ScopeMessage;
9 namespace scope {
10  class DaqChunk;
11  class DaqChunkResonance;
12  class ScannerVectorFrameBasic;
13  typedef std::shared_ptr<ScannerVectorFrameBasic> ScannerVectorFrameBasicPtr;
14  typedef std::shared_ptr<DaqChunk> DaqChunkPtr;
15  typedef std::shared_ptr<DaqChunkResonance> DaqChunkResonancePtr;
16  class ScopeMultiImage;
17  typedef std::shared_ptr<ScopeMultiImage> ScopeMultiImagePtr;
18  class ScopeMultiImageResonanceSW;
19  typedef std::shared_ptr<ScopeMultiImageResonanceSW> ScopeMultiImageResonanceSWPtr;
20  namespace parameters {
21  class Scope;
22  }
23  enum ControllerReturnStatus;
24 }
25 
26 namespace scope {
27 
31  : public BaseController<SCOPE_NAREAS> {
32 
33 protected:
35  class Impl;
36 
37 protected:
40 
43 
45  Impl* const Pimpl() const;
46 
47 public:
49  PipelineController(std::array<SynchronizedQueue<ScopeMessage<SCOPE_DAQCHUNKPTR_T>>, SCOPE_NAREAS>* const _iqueues
52  , const parameters::Scope& _parameters);
53 
55 
57  void SetScannerVector(const uint32_t& _area, ScannerVectorFrameBasicPtr _sv);
58 };
59 
60 }
The master parameters class.
Definition: Scope.h:204
void SetScannerVector(const uint32_t &_area, ScannerVectorFrameBasicPtr _sv)
Sets a scanner vector.
The PipelineController controls everything from pixels to complete images, i.e.
Message with tag and cargo for SyncQueues between controllers.
Definition: DaqController.h:8
PipelineController(PipelineController &other)
disable copy
Impl *const Pimpl() const
The implementation class of the PipelineController.
A synchronized, thread-safe queue was modeled after ringbuffer example from boost?! and/or a Herb Sutter column?!
Definition: DaqController.h:7
PipelineController & operator=(PipelineController &other)
disable assignment
Base class for all controllers.