8 #ifndef ASYNCHRONOUS_INTERFACE2_H_
9 #define ASYNCHRONOUS_INTERFACE2_H_
38 class VisibilityIterator2;
45 inline operator std::string( )
const {
53 virtual void print (std::ostream & o)
const = 0;
118 void print (std::ostream & o)
const;
135 void print (std::ostream & o)
const;
154 void print (std::ostream & o)
const;
170 typedef std::vector<RoviaModifier *> casacore::Data;
192 virtual void print (std::ostream & o)
const;
365 class InterfaceController;
400 typedef std::queue<VlaDatum *> casacore::Data;
465 template <
typename casacore::Data>
472 const casacore::Data &
data,
494 template <
typename casacore::Data>
497 const casacore::Data &
data,
503 template <
typename casacore::Data>
511 const casacore::Data & data,
535 template <
typename casacore::Data>
538 const casacore::Data & data,
592 pair<casacore::Bool, RoviaModifiers>
resetVi ();
casacore::Block< casacore::Vector< casacore::Int > > blockWidth_p
*static casacore::Bool initializeLogging()
void apply(VisibilityIterator2 *)
void storeChannelSelection(const ChannelSelection &channelSelection)
DeltaThreadTimes fillCycle_p
virtual void write(VisibilityIterator2 *vi)=0
SetRowBlockingModifier(casacore::Int nRows)
VisBufferImplAsync2 * visBuffer_p
ChannelSelection & operator=(const ChannelSelection &other)
casacore::String toCsv(const casacore::Block< casacore::Vector< casacore::Int > > &bv) const
void initialize(const AsynchronousInterface *)
LatticeExprNode arg(const LatticeExprNode &expr)
SelectChannelModifier(casacore::Int nGroup, casacore::Int start, casacore::Int width, casacore::Int increment, casacore::Int spectralWindow)
WriteData(const Subchunk &subchunkPair)
static casacore::Bool logThis(casacore::Int level)
void insertValidSubChunk(Subchunk)
DeltaThreadTimes fillWait_p
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
casacore::MVRadialVelocity vInc_p
DeltaThreadTimes fillOperate_p
void(VisibilityIterator2::* Setter)(const casacore::Data &, DataColumn)
void apply(VisibilityIterator2 *) const
const casacore::Int MaxNBuffers_p
casacore::Int spectralWindow_p
void addModifier(RoviaModifier *modifier)
ValidChunks validChunks_p
ChannelSelection channelSelection_p
void waitForInterfaceChange(async::UniqueLock &uniqueLock) const
VlaData & operator=(const VlaData &other)
AsynchronousInterface & operator=(const AsynchronousInterface &)=delete
casacore::MDoppler::Types dType_p
VlaDatum & operator=(const VlaDatum &other)
Illegal operations.
ChannelSelection channelSelection_p
ChannelSelection getChannelSelection() const
VisBufferImplAsync2 * getVisBuffer()
static casacore::Int logLevel_p
casacore::Block< casacore::Vector< casacore::Int > > blockNGroup_p
void copyBlock(const casacore::Block< casacore::Vector< casacore::Int > > &src, casacore::Block< casacore::Vector< casacore::Int > > &to) const
const AsynchronousInterface * interface_p
async::Mutex & getMutex() const
virtual void print(std::ostream &o) const
casacore::String makeReport()
DeltaThreadTimes readOperate_p
casacore::Bool isValidSubChunk(Subchunk) const
casacore::Bool isSweepTerminationRequested() const
casacore::Int increment_p
DeltaThreadTimes readWait_p
void notifyAllInterfaceChanged() const
casacore::Double timeInterval_p
RoviaModifiers transferModifiers()
casacore::Bool isLookaheadTerminationRequested() const
WriteDataImpl(const Subchunk &subchunkPair, const casacore::Data &data, Setter setter)
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
void apply(VisibilityIterator2 *) const
Internal value for MRadialVelocity.
casacore::Bool statsEnabled() const
void add(RoviaModifier *)
void insertValidChunk(casacore::Int chunkNumber)
casacore::Int clock(casacore::Int arg, casacore::Int base)
void write(VisibilityIterator2 *vi)
void initialize(const AsynchronousInterface *)
virtual void apply(VisibilityIterator2 *) const =0
void enqueue(WriteData *writeData)
Subchunk getSubchunk() const
void readComplete(Subchunk)
casacore::Block< casacore::Vector< casacore::Int > > blockSpw_p
WriteDataImpl2(const Subchunk &subchunkPair, const casacore::Data &data, DataColumn dataColumn, Setter setter)
VisBufferImplAsync2 * releaseVisBufferAsync2()
casacore::Bool isValidChunk(casacore::Int chunkNumber) const
void write(VisibilityIterator2 *vi)
volatile casacore::Bool sweepTerminationRequested_p
async::Condition interfaceDataChanged_p
void print(std::ostream &o) const
std::queue< casacore::Int > ValidChunks
void terminateLookahead()
Types
Types of known MRadialVelocity Warning: The order defines the order in the translation matrix FromTo...
bool Bool
Define the standard types used by Casacore.
volatile casacore::Bool viResetComplete_p
(e.g., prior to rewinding
void fillComplete(VlaDatum *datum)
Types
Types of known MDopplers Warning: The order defines the order in the translation matrix FromTo in th...
void(VisibilityIterator2::* Setter)(const casacore::Data &)
std::queue< Subchunk > ValidSubChunks
WriteQueue & getWriteQueue()
virtual void print(std::ostream &o) const =0
std::queue< WriteData * > queue_p
casacore::Bool isSubchunk(Subchunk) const
const VisBufferAsync2 * getVisBuffer () const;
static casacore::Bool initializeLogging()
static casacore::Bool loggingInitialized_p
void apply(VisibilityIterator2 *) const
Subchunk getsubchunk() const
void print(std::ostream &o) const
WriteData * createWriteData(const Subchunk &subchunkPair, const casacore::Data &data, void(VisibilityIterator2::*setter)(const casacore::Data &))
VlaDatum * fillStart(Subchunk, const ThreadTimes &fillStartTime)
String: the storage and methods of handling collections of characters.
VlaData(casacore::Int maxNBuffers, async::Mutex &mutex)
DeltaThreadTimes readCycle_p
volatile casacore::Bool viResetRequested_p
VisibilityIterator2::DataColumn DataColumn
RoviaModifiers transferRoviaModifiers()
casacore::Block< casacore::Vector< casacore::Int > > blockStart_p
casacore::MRadialVelocity::Types rvType_p
casacore::Bool viResetRequested()
casacore::Int spectralWindow_p
RoviaModifiers roviaModifiers_p
AsynchronousInterface(const AsynchronousInterface &)=delete
friend class InterfaceController;
const AsynchronousInterface * interface_p
void write(VisibilityIterator2 *vi)
void apply(VisibilityIterator2 *) const
VisBufferImplAsync2 * readStart(Subchunk)
volatile casacore::Bool lookaheadTerminationRequested_p
o VisBuffer consumed o Write data queued o Sweep or thread termination requested
SetIntervalModifier(casacore::Double timeInterval)
casacore::Block< casacore::Vector< casacore::Int > > blockIncr_p
VlaData * getVlaData()
async::LockGuard getLockGuard () const;
ValidSubChunks validSubChunks_p
casacore::Bool empty(casacore::Bool alreadyLocked=false)
VlaDatum is a single elemement in the VlaDatum buffer ring used to support the VisibilityIterator2Asy...
casacore::Bool channelBlocks_p
casacore::MVRadialVelocity vStart_p
SelectVelocityModifier(casacore::Int nChan, const casacore::MVRadialVelocity &vStart, const casacore::MVRadialVelocity &vInc, casacore::MRadialVelocity::Types rvType, casacore::MDoppler::Types dType, casacore::Bool precise)
casacore::Bool fillCanStart() const
void print(std::ostream &o) const
pair< casacore::Bool, RoviaModifiers > resetVi()