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

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2007 Murad Tagirov <tmurad@gmail.com>
0004 //
0005 
0006 
0007 #ifndef MARBLE_SERIALIZABLE_H
0008 #define MARBLE_SERIALIZABLE_H
0009 
0010 class QDataStream;
0011 
0012 namespace Marble {
0013 
0014 class Serializable
0015 {
0016  public:
0017     virtual ~Serializable(){}
0018     virtual void pack( QDataStream& stream ) const = 0;
0019     virtual void unpack( QDataStream& stream ) = 0;
0020 };
0021 
0022 /* the next two id's are needed to get unpacking working - this cannot be
0023  * achieved without a special Id
0024  */
0025 enum EnumFeatureId {
0026     InvalidFeatureId = -1,
0027     GeoDataDocumentId = 1,
0028     GeoDataFolderId,
0029     GeoDataPlacemarkId,
0030     GeoDataNetworkLinkId,
0031     GeoDataScreenOverlayId,
0032     GeoDataGroundOverlayId
0033 };
0034 
0035 enum EnumGeometryId {
0036     InvalidGeometryId = -1,
0037     GeoDataPointId = 1,
0038     GeoDataLineStringId,
0039     GeoDataLinearRingId,
0040     GeoDataPolygonId,
0041     GeoDataMultiGeometryId,
0042     GeoDataMultiTrackId,
0043     GeoDataModelId,
0044     GeoDataTrackId,
0045     GeoDataBuildingId
0046 };
0047 
0048 }
0049 
0050 #endif