IntegrationOrder.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2003 by Aidan Hotan
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/Base/Extensions/Pulsar/IntegrationOrder.h
10 
11 #ifndef __IntegrationOrder_h
12 #define __IntegrationOrder_h
13 
14 #include "Pulsar/ArchiveExtension.h"
15 
16 namespace Pulsar {
17 
19 
24  class IntegrationOrder : public Archive::Extension {
25 
26  public:
27 
28  // These are the standard Archive::Extension methods:
29 
31  IntegrationOrder (const char* name);
32 
34  IntegrationOrder (const IntegrationOrder& extension);
35 
37  const IntegrationOrder& operator= (const IntegrationOrder& extension);
38 
40  virtual ~IntegrationOrder ();
41 
43  virtual IntegrationOrder* clone () const = 0;
44 
46  std::string get_IndexState () const;
47 
49  std::string get_Unit () const;
50 
52  unsigned size() const;
53 
55  void resize (unsigned nsubint,
56  unsigned npol = 0,
57  unsigned nchan = 0,
58  unsigned nbin = 0);
59 
61  void erase (unsigned i);
62 
64  void set_Index (unsigned subint, double i);
65 
67  double get_Index (unsigned subint) const;
68 
69  // These are the virtual base methods of the IntegrationOrder class:
70 
72  virtual void organise (Archive*, unsigned) = 0;
73 
75  virtual void append (Archive*, const Archive*) = 0;
76 
79  virtual void combine (Archive*, unsigned) = 0;
80 
82  std::string get_short_name () const { return "order"; }
83 
84  protected:
85 
87  std::string IndexState;
88 
90  std::string Unit;
91 
93  std::vector<double> indices;
94 
95  };
96 
97 }
98 
99 #endif
void set_Index(unsigned subint, double i)
Set the custom index value associated with an Integration.
Definition: IntegrationOrder.C:77
virtual void append(Archive *, const Archive *)=0
Add two Archive instances that have the same IntegrationOrder.
std::vector< double > indices
Storage for the actual Integration indices.
Definition: IntegrationOrder.h:103
const IntegrationOrder & operator=(const IntegrationOrder &extension)
Operator =.
Definition: IntegrationOrder.C:27
The primary interface to pulsar observational data.
Definition: Archive.h:45
virtual void combine(Archive *, unsigned)=0
IntegrationOrder(const char *name)
Default constructor.
Definition: IntegrationOrder.C:10
virtual IntegrationOrder * clone() const =0
Clone method.
double get_Index(unsigned subint) const
Get the custom index value associated with an Integration.
Definition: IntegrationOrder.C:68
void resize(unsigned nsubint, unsigned npol=0, unsigned nchan=0, unsigned nbin=0)
Change the size of the index array.
Definition: IntegrationOrder.C:50
unsigned size() const
Return the size of the index array.
Definition: IntegrationOrder.C:58
virtual ~IntegrationOrder()
Destructor.
Definition: IntegrationOrder.C:36
void erase(unsigned i)
Erase the specified index.
Definition: IntegrationOrder.C:63
std::string IndexState
An index state identifier string.
Definition: IntegrationOrder.h:97
std::string get_Unit() const
Return a string describing the units of this state.
Definition: IntegrationOrder.C:45
virtual void organise(Archive *, unsigned)=0
Re-order the Integrations into the desired state.
std::string get_IndexState() const
Return a string describing the type of indexing used.
Definition: IntegrationOrder.C:40
Defines the PSRCHIVE library.
Definition: CalSource.h:17
std::string Unit
The units (if any) of this state.
Definition: IntegrationOrder.h:100
Alternative ways of ordering Integration instances.
Definition: IntegrationOrder.h:29
std::string get_short_name() const
Return a short name.
Definition: IntegrationOrder.h:92

Generated using doxygen 1.8.17