MolecularZone.h
Go to the documentation of this file.
1 
9 #ifndef _atm_MolecularZone_h_
10 #define _atm_MolecularZone_h_
11 
12 
13 #include <boost/iterator/indirect_iterator.hpp>
14 #include <atm/VZone.h>
15 #include <atm/MolecularLayer.h>
16 
17 
18 namespace atm {
19 
20  class MolecularDB;
21 
33  class MolecularZone : public VZone {
34 
35  private:
36  typedef std::vector<const MolecularLayer*> InternalLayerVector;
37  typedef InternalLayerVector::const_iterator InternalLayerIterator;
38 
40 
41  public:
43  typedef boost::indirect_iterator<InternalLayerIterator, const MolecularLayer&> LayerIterator;
44 
46  LayerIterator LayersBegin() const;
47 
49  LayerIterator LayersEnd() const;
50 
51  private:
52  MolecularZone(const std::string& zoneId, const std::string& molecularId,
53  const std::string& zoneName,
54  const double northing, const double easting);
55 
56  //DV we have pointer data-members: prevent unintended copying
59 
60  virtual ~MolecularZone();
61 
62  void CacheLayers(InternalLayerVector*& layerVector,
63  const std::string& zoneIdString) const;
64 
65  std::string fMolecularIdString;
67 
68  friend class MolecularDB;
69 
70  };
71 
72 } // atm
73 
74 
75 #endif // _atm_MolecularZone_h_
76 
77 // Configure (x)emacs for this file ...
78 // Local Variables:
79 // mode: c++
80 // compile-command: "make -C .. -k"
81 // End:
MolecularZone & operator=(const MolecularZone &)
InternalLayerVector::const_iterator InternalLayerIterator
Definition: MolecularZone.h:37
void CacheLayers(InternalLayerVector *&layerVector, const std::string &zoneIdString) const
std::string fMolecularIdString
Definition: MolecularZone.h:65
InternalLayerVector * fLayerVector
Definition: MolecularZone.h:39
Detector description interface for data in the Atm_Molecular database.
Definition: MolecularDB.h:29
MolecularZone(const std::string &zoneId, const std::string &molecularId, const std::string &zoneName, const double northing, const double easting)
class describing a molecular zone.
Definition: MolecularZone.h:33
Base class for Aerosol, Molecula, Overall Quality and Lidar atmosphere zones.
Definition: VZone.h:28
std::vector< const MolecularLayer * > InternalLayerVector
Definition: MolecularZone.h:36
std::string fMolecularZoneIdString
Definition: MolecularZone.h:66
boost::indirect_iterator< InternalLayerIterator, const MolecularLayer & > LayerIterator
Layer iterator returns a pointer to the molecular data slice for this zone.
Definition: MolecularZone.h:43
LayerIterator LayersBegin() const
Beginning of the collection of molecular data slices.
LayerIterator LayersEnd() const
End of the collection of molecular data slices.
virtual ~MolecularZone()

, generated on Tue Sep 26 2023.