File indexing completed on 2024-05-12 03:50:18

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Harshit Jain <hjain.itbhu@gmail.com>
0004 //
0005 
0006 #ifndef MARBLE_GEODATATIMEPRIMITIVE_H
0007 #define MARBLE_GEODATATIMEPRIMITIVE_H
0008 
0009 #include "GeoDataObject.h"
0010 
0011 #include "geodata_export.h"
0012 
0013 namespace Marble
0014 {
0015 
0016 class GeoDataTimePrimitivePrivate;
0017 
0018 /**
0019  * @short a base class for the style classes
0020  *
0021  * A GeoDataTimePrimitive is a base class for the time classes TimeSpan
0022  * and TimeStamp classes.
0023  *
0024  * @see GeoDataTimeSpan
0025  * @see GeoDataTimeStamp
0026  */
0027 class GEODATA_EXPORT GeoDataTimePrimitive : public GeoDataObject
0028 {
0029   public:
0030     /// Provides type information for downcasting a GeoNode
0031     const char* nodeType() const override;
0032 
0033     GeoDataTimePrimitive& operator=( const GeoDataTimePrimitive& other );
0034 
0035     /**
0036      * @brief Serialize the styleselector to a stream
0037      * @param  stream  the stream
0038      */
0039     void pack( QDataStream& stream ) const override;
0040 
0041     /**
0042      * @brief  Unserialize the styleselector from a stream
0043      * @param  stream  the stream
0044      */
0045     void unpack( QDataStream& stream ) override;
0046 
0047     GeoDataTimePrimitive();
0048     GeoDataTimePrimitive( const GeoDataTimePrimitive& other );
0049     ~GeoDataTimePrimitive() override;
0050 private:
0051     GeoDataTimePrimitivePrivate * const d;
0052 };
0053 
0054 }
0055 
0056 #endif