File indexing completed on 2025-01-05 03:59:02
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