LoadToFoldN.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2007 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // dspsr/Signal/Pulsar/dsp/LoadToFoldN.h
10 
11 #ifndef __baseband_dsp_LoadToFoldN_h
12 #define __baseband_dsp_LoadToFoldN_h
13 
14 #include "dsp/LoadToFold1.h"
15 #include "dsp/MultiThread.h"
16 
17 class ThreadContext;
18 
19 namespace dsp {
20 
21  class UnloaderShare;
22 
24  class LoadToFoldN : public MultiThread
25  {
26 
27  public:
28 
31 
33  void set_nthread (unsigned);
34 
37 
39  void share ();
40 
42  void finish ();
43 
44  protected:
45 
47 
49 
51  std::vector< Reference::To<UnloaderShare> > unloader;
52 
54  virtual LoadToFold* new_thread ();
55 
56  LoadToFold* at (unsigned index);
57 
58  template <class T>
59  bool prepare_subint_archival ();
60 
61 
62  };
63 
64 }
65 
66 #endif // !defined(__LoadToFoldN_h)
67 
68 
69 
70 
71 
Contains all Baseband Data Reduction Library classes.
Definition: ASCIIObservation.h:17
void set_configuration(LoadToFold::Config *)
Set the configuration to be used in prepare and run.
Definition: LoadToFoldN.C:54
void share()
Setup sharing.
Definition: LoadToFoldN.C:64
Multiple pipeline threads.
Definition: MultiThread.h:21
Unload PhaseSeries data from multiple threads.
Definition: UnloaderShare.h:31
void finish()
Finish by ensuring that all buffered outputs are flushed.
Definition: LoadToFoldN.C:185
Type * get() const
std::vector< Reference::To< UnloaderShare > > unloader
PhaseSeriesUnloader sharing.
Definition: LoadToFoldN.h:51
void set_unloader(PhaseSeriesUnloader *unloader)
Set the file unloader.
Definition: Subint.h:196
const TimeDivide * get_divider() const
Access to the divider.
Definition: Subint.h:119
LoadToFoldN(LoadToFold::Config *)
Constructor.
Definition: LoadToFoldN.C:31
A single LoadToFold thread.
Definition: LoadToFold1.h:54
Multiple LoadToFold threads.
Definition: LoadToFoldN.h:24
virtual LoadToFold * new_thread()
The creator of new LoadToFold threads.
Definition: LoadToFoldN.C:202
void set_nthread(unsigned)
Set the number of thread to be used.
Definition: LoadToFoldN.C:38
Unload PhaseSeries data into sub-integrations.
Definition: Subint.h:36
Load, unpack, process and fold data into phase-averaged profile(s)
Definition: LoadToFoldConfig.h:30
Reference::To< LoadToFold::Config > configuration
Configuration parameters.
Definition: LoadToFoldN.h:48
unsigned nthread

Generated using doxygen 1.8.17