#ifndef _atm_AerosolDB_h_ #define _atm_AerosolDB_h_ #include #include #include #include namespace atm { class AerosolDB { private: void CacheZones(); typedef std::map InternalZoneMap; typedef InternalZoneMap::const_iterator InternalZoneIterator; InternalZoneMap fZoneMap; struct InternalZoneFunctor { const AerosolZone& operator()(const std::pair& pair) const { return *pair.second; } }; public: /// ZoneIterator returns a pointer to an AerosolZone typedef boost::transform_iterator ZoneIterator; /// Beginning of the collection of valid Zones ZoneIterator ZonesBegin() const { return ZoneIterator(fZoneMap.begin()); } /// End of the collection of valid Zones ZoneIterator ZonesEnd() const { return ZoneIterator(fZoneMap.end()); } private: AerosolDB(); ~AerosolDB(); std::string fAerosolIdString; // specifies the aerosol_id key for given time, software version, etc. friend class Atmosphere; }; } // namespace atm #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // compile-command: "make -C .. -k" // End: