dsp::UnloaderShare Class Reference

Unload PhaseSeries data from multiple threads. More...

#include <UnloaderShare.h>

Inheritance diagram for dsp::UnloaderShare:
Reference::Able Reference::HeapTracked

Public Member Functions

 UnloaderShare (unsigned contributors)
 Constructor.
 
virtual ~UnloaderShare ()
 Destructor.
 
void set_context (ThreadContext *)
 Set the context for control of shared resources.
 
void set_wait_all (bool)
 When sub-integration is finished, wait for all other threads to finish.
 
Submit * new_Submit (unsigned contributor)
 Get submission interface for the specified contributor.
 
void unload (const PhaseSeries *, Submit *)
 Unload the PhaseSeries data.
 
void finish_all (unsigned contributor)
 Inform any waiting threads that contributor is finished.
 
void copy (const TimeDivide *)
 Copy the Divider configuration.
 
void set_start_time (const MJD &start_time)
 Set the start time from which to begin counting sub-integrations.
 
MJD get_start_time () const
 Get the start time from which to begin counting sub-integrations.
 
void set_subint_seconds (double subint_seconds)
 Set the number of seconds to fold into each sub-integration. More...
 
double get_subint_seconds () const
 Get the number of seconds to fold into each sub-integration.
 
void set_subint_turns (unsigned subint_turns)
 Set the number of turns to fold into each sub-integration. More...
 
unsigned get_subint_turns () const
 Get the number of turns to fold into each sub-integration.
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

deprecated methods

Use of these methods is deprecated in favour of attaching callback methods to the completed event.

std::vector< Reference::To< Storage > > storage
 Temporary storage of incomplete sub-integrations.
 
Reference::To< PhaseSeriesUnloaderunloader
 File unloader.
 
TimeDivide divider
 The time divider.
 
const TimeDividedivider_copy
 Pointer to TimeDivide to be copied when needed.
 
unsigned contributors
 The number of contributors.
 
std::vector< uint64_t > last_division
 The last division completed by a contributor.
 
ThreadContextcontext
 Thread coordination used in unload method.
 
bool wait_all
 First contributor to complete a division waits for all others.
 
std::vector< bool > finished_all
 Flags set when a contributor calls finish_all.
 
void set_unloader (PhaseSeriesUnloader *unloader)
 Set the shared file unloader. More...
 
PhaseSeriesUnloaderget_unloader () const
 Get the shared file unloader. More...
 
void finish ()
 Unload all cached subintegrations.
 
void unload (Storage *)
 Unload the storage.
 
void nonblocking_unload (unsigned istore, Submit *)
 Unload the storage in parallel.
 
bool all_finished ()
 Return true when all threads have finished.
 

Additional Inherited Members

- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Detailed Description

Unload PhaseSeries data from multiple threads.

The SubFold class from each thread is given a pointer to an instance of the nested Submit class, which acts as a controlled interface to the UnloaderShare that created it.

Member Function Documentation

◆ get_unloader()

dsp::PhaseSeriesUnloader * dsp::UnloaderShare::get_unloader ( ) const

Get the shared file unloader.

Get the file unloader.

◆ set_subint_seconds()

void dsp::UnloaderShare::set_subint_seconds ( double  subint_seconds)

Set the number of seconds to fold into each sub-integration.

Set the interval over which to fold each sub-integration (in seconds)

◆ set_subint_turns()

void dsp::UnloaderShare::set_subint_turns ( unsigned  subint_turns)

Set the number of turns to fold into each sub-integration.

Set the number of pulses to fold into each sub-integration.

◆ set_unloader()

void dsp::UnloaderShare::set_unloader ( dsp::PhaseSeriesUnloader _unloader)

Set the shared file unloader.

Set the file unloader.


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

Generated using doxygen 1.8.17