#ifndef _atm_LidarDB_h_ #define _atm_LidarDB_h_ #include #include #include #include namespace atm { /** \class LidarDB \brief Detector description interface for LidarDB-realted data For and example of using this interface, see the ReadLidarLLNS::ReadLidarLL example. \author T. Paul \date 16 August 2006 \version $Id: LidarDB.h 21856 2012-09-03 20:01:24Z paul $ \ingroup atm */ class LidarDB { private: void CacheZones(); typedef std::map InternalZoneMap; typedef InternalZoneMap::const_iterator InternalZoneIterator; InternalZoneMap fZoneMap; struct InternalZoneFunctor { const LidarZone& operator()(const std::pair& pair) const { return *pair.second; } }; public: /// ZoneIterator returns a pointer to an LidarZone 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: LidarDB(); ~LidarDB(); std::string fLidarIdString; // specifies the lidar_id key for given time, software version, etc. friend class Atmosphere; }; } #endif // _atm_LidarDB_h_