+/* -------------------------------------------------------------------------------- */
+
+class LiveMetarProperties : public MetarProperties {
+public:
+ LiveMetarProperties( SGPropertyNode_ptr rootNode );
+ virtual ~LiveMetarProperties();
+ virtual void update( double dt );
+
+ virtual double getTimeToLive() const { return _timeToLive; }
+ virtual void setTimeToLive( double value ) { _timeToLive = value; }
+private:
+ double _timeToLive;
+
+};
+
+typedef SGSharedPtr<LiveMetarProperties> LiveMetarProperties_ptr;
+
+LiveMetarProperties::LiveMetarProperties( SGPropertyNode_ptr rootNode ) :
+ MetarProperties( rootNode ),
+ _timeToLive(0.0)
+{
+ _tiedProperties.Tie("time-to-live", &_timeToLive );
+}
+
+LiveMetarProperties::~LiveMetarProperties()
+{
+ _tiedProperties.Untie();
+}
+
+void LiveMetarProperties::update( double dt )
+{
+ _timeToLive -= dt;
+ if( _timeToLive < 0.0 ) _timeToLive = 0.0;
+}
+
+/* -------------------------------------------------------------------------------- */
+