DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs > Class Template Reference

Data stream instrument for bidirectional gRPC communication. More...

+ Inheritance diagram for DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >:

Public Types

using ParamsType = NetworkDataStreamInstrumentParams< BaseInstr, 0, gRPCStubs... >
 
using ConfigType = NetworkDataStreamInstrumentConfigurator< BaseInstr, 0, gRPCStubs... >
 
using InstrumentDataType = NetworkDataStreamInstrumentData< BaseInstr, 0, gRPCStubs... >
 
- Public Types inherited from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >
using ParamsType = gRPCInstrumentParams< BaseInstr, 0, gRPCStubs... >
 Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object. More...
 
using ConfigType = gRPCInstrumentConfigurator< BaseInstr, 0, gRPCStubs... >
 Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object. More...
 
using InstrumentDataType = gRPCInstrumentData< BaseInstr, 0, gRPCStubs... >
 Type of the data class belonging to this InstrumentBase type. Declare this alias in every derived class with the respective data class accompanying the derived InstrumentBase. More...
 

Public Member Functions

 NetworkDataStreamInstrumentT (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params)
 
virtual ~NetworkDataStreamInstrumentT ()
 
virtual std::string GetName () const override
 Returns the name of this Object type. More...
 
virtual std::chrono::milliseconds GetTaskQueueDelay () const
 Read remote instrument's state periodically. More...
 
virtual Util::OptionalBool HasFinished () const override
 
virtual Util::OptionalBool IsRunning () const override
 
virtual void ReadData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void WriteData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void ClearData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void Start (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void Stop (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void Restart (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void SetStreamSize (size_t BufferSizeInSamples, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
virtual void ResetStreamSize (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
 
- Public Member Functions inherited from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >
virtual ~gRPCInstrument ()
 
virtual std::string GetCategory () const override
 Returns the category of this Object type. More...
 

Static Public Member Functions

constexpr static auto Name () noexcept
 
- Static Public Member Functions inherited from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >
constexpr static auto Name () noexcept
 Every derived class has to redefine this function. More...
 
constexpr static auto Category () noexcept
 Every derived class has to redefine this function. More...
 

Private Member Functions

void ResetImpl (DynExp::Object::dispatch_tag< gRPCInstrument< BaseInstr, 0, gRPCStubs... >>) override final
 
virtual void ResetImpl (DynExp::Object::dispatch_tag< NetworkDataStreamInstrumentT >)
 
virtual std::unique_ptr< DynExp::InitTaskBaseMakeInitTask () const override
 Factory function for an init task (InitTaskBase). Override to define the desired initialization task in derived classes only if the respective task really does something and if it has no pure virtual function. More...
 
virtual std::unique_ptr< DynExp::ExitTaskBaseMakeExitTask () const override
 Factory function for an exit task (ExitTaskBase). Override to define the desired deinitialization task in derived classes only if the respective task really does something and if it has no pure virtual function. More...
 
virtual std::unique_ptr< DynExp::UpdateTaskBaseMakeUpdateTask () const override
 Factory function for an update task (UpdateTaskBase). Override to define the desired update task in derived classes only if the respective task really does something and if it has no pure virtual function. More...
 

Additional Inherited Members

- Protected Member Functions inherited from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >
 gRPCInstrument (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params)
 Constructs an instrument instance. More...
 

Detailed Description

template<typename BaseInstr, typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int >, typename... gRPCStubs>
class DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >

Data stream instrument for bidirectional gRPC communication.

Template Parameters
BaseInstrBaseInstr Meta instrument the parent class DynExpInstr::gRPCInstrument derives from.
enable_if_tInternal check whether BaseInstr is derived from DynExpInstr::DataStreamInstrument. Pass 0.
...gRPCStubsgRPC stub classes of derived instruments which are used by them to transfer data.

Definition at line 450 of file NetworkDataStreamInstrument.h.

Member Typedef Documentation

◆ ConfigType

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
using DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ConfigType = NetworkDataStreamInstrumentConfigurator<BaseInstr, 0, gRPCStubs...>

Definition at line 454 of file NetworkDataStreamInstrument.h.

◆ InstrumentDataType

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
using DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::InstrumentDataType = NetworkDataStreamInstrumentData<BaseInstr, 0, gRPCStubs...>

Definition at line 455 of file NetworkDataStreamInstrument.h.

◆ ParamsType

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
using DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ParamsType = NetworkDataStreamInstrumentParams<BaseInstr, 0, gRPCStubs...>

Definition at line 453 of file NetworkDataStreamInstrument.h.

Constructor & Destructor Documentation

◆ NetworkDataStreamInstrumentT()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::NetworkDataStreamInstrumentT ( const std::thread::id  OwnerThreadID,
DynExp::ParamsBasePtrType &&  Params 
)
inline

Definition at line 459 of file NetworkDataStreamInstrument.h.

◆ ~NetworkDataStreamInstrumentT()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::~NetworkDataStreamInstrumentT ( )
inlinevirtual

Definition at line 461 of file NetworkDataStreamInstrument.h.

Member Function Documentation

◆ ClearData()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ClearData ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

Definition at line 486 of file NetworkDataStreamInstrument.h.

◆ GetName()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual std::string DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::GetName ( ) const
inlineoverridevirtual

◆ GetTaskQueueDelay()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual std::chrono::milliseconds DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::GetTaskQueueDelay ( ) const
inlinevirtual

Read remote instrument's state periodically.

Returns
See DynExp::InstrumentBase::GetTaskQueueDelay().

Definition at line 469 of file NetworkDataStreamInstrument.h.

◆ HasFinished()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual Util::OptionalBool DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::HasFinished ( ) const
inlineoverridevirtual

Definition at line 471 of file NetworkDataStreamInstrument.h.

◆ IsRunning()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual Util::OptionalBool DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::IsRunning ( ) const
inlineoverridevirtual

Definition at line 477 of file NetworkDataStreamInstrument.h.

◆ MakeExitTask()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual std::unique_ptr<DynExp::ExitTaskBase> DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::MakeExitTask ( ) const
inlineoverrideprivatevirtual

Factory function for an exit task (ExitTaskBase). Override to define the desired deinitialization task in derived classes only if the respective task really does something and if it has no pure virtual function.

Returns
Pointer to the task (transferring ownership) or nullptr if no exit task is required. A task can be created with MakeTask().

Reimplemented from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >.

Reimplemented in DynExpInstr::NetworkTimeTaggerT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalOutT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalInT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkAnalogOutT< BaseInstr,, gRPCStubs >, and DynExpInstr::NetworkAnalogInT< BaseInstr,, gRPCStubs >.

Definition at line 502 of file NetworkDataStreamInstrument.h.

◆ MakeInitTask()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual std::unique_ptr<DynExp::InitTaskBase> DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::MakeInitTask ( ) const
inlineoverrideprivatevirtual

Factory function for an init task (InitTaskBase). Override to define the desired initialization task in derived classes only if the respective task really does something and if it has no pure virtual function.

Returns
Pointer to the task (transferring ownership) or nullptr if no init task is required. A task can be created with MakeTask().

Reimplemented from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >.

Reimplemented in DynExpInstr::NetworkTimeTaggerT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalOutT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalInT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkAnalogOutT< BaseInstr,, gRPCStubs >, and DynExpInstr::NetworkAnalogInT< BaseInstr,, gRPCStubs >.

Definition at line 501 of file NetworkDataStreamInstrument.h.

◆ MakeUpdateTask()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual std::unique_ptr<DynExp::UpdateTaskBase> DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::MakeUpdateTask ( ) const
inlineoverrideprivatevirtual

Factory function for an update task (UpdateTaskBase). Override to define the desired update task in derived classes only if the respective task really does something and if it has no pure virtual function.

Returns
Pointer to the task (transferring ownership) or nullptr if no update task is required. A task can be created with MakeTask().

Reimplemented from DynExpInstr::gRPCInstrument< BaseInstr, 0, gRPCStubs... >.

Reimplemented in DynExpInstr::NetworkTimeTaggerT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalOutT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkDigitalInT< BaseInstr,, gRPCStubs >, DynExpInstr::NetworkAnalogOutT< BaseInstr,, gRPCStubs >, and DynExpInstr::NetworkAnalogInT< BaseInstr,, gRPCStubs >.

Definition at line 503 of file NetworkDataStreamInstrument.h.

◆ Name()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
constexpr static auto DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::Name ( )
inlinestaticconstexprnoexcept

Definition at line 457 of file NetworkDataStreamInstrument.h.

◆ ReadData()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ReadData ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

◆ ResetImpl() [1/2]

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ResetImpl ( DynExp::Object::dispatch_tag< gRPCInstrument< BaseInstr, 0, gRPCStubs... >>  )
inlinefinaloverrideprivate

Definition at line 494 of file NetworkDataStreamInstrument.h.

◆ ResetImpl() [2/2]

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ResetImpl ( DynExp::Object::dispatch_tag< NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs > >  )
inlineprivatevirtual

Definition at line 499 of file NetworkDataStreamInstrument.h.

◆ ResetStreamSize()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::ResetStreamSize ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

Definition at line 491 of file NetworkDataStreamInstrument.h.

◆ Restart()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::Restart ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

Definition at line 489 of file NetworkDataStreamInstrument.h.

◆ SetStreamSize()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::SetStreamSize ( size_t  BufferSizeInSamples,
DynExp::TaskBase::CallbackType  CallbackFunc = nullptr 
) const
inlineoverridevirtual

Definition at line 490 of file NetworkDataStreamInstrument.h.

◆ Start()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::Start ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

Definition at line 487 of file NetworkDataStreamInstrument.h.

◆ Stop()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::Stop ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

Definition at line 488 of file NetworkDataStreamInstrument.h.

◆ WriteData()

template<typename BaseInstr , typename std::enable_if_t< std::is_base_of_v< DataStreamInstrument, BaseInstr >, int > , typename... gRPCStubs>
virtual void DynExpInstr::NetworkDataStreamInstrumentT< BaseInstr,, gRPCStubs >::WriteData ( DynExp::TaskBase::CallbackType  CallbackFunc = nullptr) const
inlineoverridevirtual

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