/* -*-c++-*- */ /* osgEarth - Dynamic map generation toolkit for OpenSceneGraph * Copyright 2015 Pelican Mapping * http://osgearth.org * * osgEarth is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/> */ #ifndef OSGEARTH_DRIVER_REFRESH_MAPLAYERFACTORY #define OSGEARTH_DRIVER_REFRESH_MAPLAYERFACTORY 1 #include <osgEarth/Common> #include <osgEarth/TileSource> #include <osgEarth/URI> namespace osgEarth { namespace Drivers { using namespace osgEarth; class RefreshOptions : public TileSourceOptions // NO EXPORT; header only { public: optional<URI>& url() { return _url; } const optional<URI>& url() const { return _url; } optional<double>& frequency() { return _frequency; } const optional<double>& frequency() const { return _frequency; } public: RefreshOptions( const TileSourceOptions& opt =TileSourceOptions() ) : TileSourceOptions( opt ) { setDriver( "refresh" ); frequency() = 2.0; fromConfig( _conf ); } RefreshOptions( const std::string& inUrl, double inFrequency ) : TileSourceOptions() { setDriver( "refresh" ); fromConfig( _conf ); _url = inUrl; _frequency = inFrequency; } /** dtor */ virtual ~RefreshOptions() { } public: Config getConfig() const { Config conf = TileSourceOptions::getConfig(); conf.updateIfSet("url", _url); conf.updateIfSet("frequency", _frequency); return conf; } protected: void mergeConfig( const Config& conf ) { TileSourceOptions::mergeConfig( conf ); fromConfig( conf ); } private: void fromConfig( const Config& conf ) { conf.getIfSet( "url", _url ); conf.getIfSet( "frequency", _frequency ); } optional<URI> _url; optional<double> _frequency; }; } } // namespace osgEarth::Drivers #endif // OSGEARTH_DRIVER_TMS_MAPLAYERFACTORY