1 // Copyright 2008, Google Inc. All rights reserved. 2 // 3 // Redistribution and use in source and binary forms, with or without 4 // modification, are permitted provided that the following conditions are met: 5 // 6 // 1. Redistributions of source code must retain the above copyright notice, 7 // this list of conditions and the following disclaimer. 8 // 2. Redistributions in binary form must reproduce the above copyright notice, 9 // this list of conditions and the following disclaimer in the documentation 10 // and/or other materials provided with the distribution. 11 // 3. Neither the name of Google Inc. nor the names of its contributors may be 12 // used to endorse or promote products derived from this software without 13 // specific prior written permission. 14 // 15 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 16 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 17 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 18 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 21 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 22 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 24 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26 #ifndef KML_DOM_KML_PTR_H__ 27 #define KML_DOM_KML_PTR_H__ 28 29 #include "boost/intrusive_ptr.hpp" 30 31 namespace kmldom { 32 33 class Element; 34 class Field; 35 36 class AbstractLatLonBox; 37 class AbstractLink; 38 class AbstractView; 39 class BasicLink; 40 class ColorStyle; 41 class Container; 42 class Feature; 43 class Geometry; 44 class Object; 45 class Overlay; 46 class StyleSelector; 47 class SubStyle; 48 class TimePrimitive; 49 class Vec2; 50 51 class Alias; 52 class AtomAuthor; 53 class AtomCategory; 54 class AtomContent; 55 class AtomEntry; 56 class AtomFeed; 57 class AtomLink; 58 class BalloonStyle; 59 class Camera; 60 class Change; 61 class Coordinates; 62 class Create; 63 class Data; 64 class Delete; 65 class Document; 66 class ExtendedData; 67 class Folder; 68 class GroundOverlay; 69 class Icon; 70 class IconStyle; 71 class IconStyleIcon; 72 class ImagePyramid; 73 class ItemIcon; 74 class LabelStyle; 75 class LatLonAltBox; 76 class LatLonBox; 77 class LineString; 78 class LineStyle; 79 class LinearRing; 80 class Link; 81 class ListStyle; 82 class Location; 83 class Lod; 84 class LookAt; 85 class Metadata; 86 class Model; 87 class MultiGeometry; 88 class NetworkLink; 89 class NetworkLinkControl; 90 class Orientation; 91 class Pair; 92 class PhotoOverlay; 93 class Placemark; 94 class Point; 95 class PolyStyle; 96 class Polygon; 97 class Region; 98 class ResourceMap; 99 class Scale; 100 class Schema; 101 class SchemaData; 102 class ScreenOverlay; 103 class SimpleData; 104 class SimpleField; 105 class Snippet; 106 class Style; 107 class StyleMap; 108 class TimeSpan; 109 class TimeStamp; 110 class Update; 111 class UpdateOperation; 112 class Url; 113 class ViewVolume; 114 class HotSpot; 115 class InnerBoundaryIs; 116 class Kml; 117 class LinkSnippet; 118 class OuterBoundaryIs; 119 class OverlayXY; 120 class RotationXY; 121 class ScreenXY; 122 class Size; 123 124 class XalAddressDetails; 125 class XalAdministrativeArea; 126 class XalCountry; 127 class XalLocality; 128 class XalPostalCode; 129 class XalSubAdministrativeArea; 130 class XalThoroughfare; 131 132 class GxAnimatedUpdate; 133 class GxFlyTo; 134 class GxLatLonQuad; 135 class GxMultiTrack; 136 class GxPlaylist; 137 class GxSimpleArrayField; 138 class GxSimpleArrayData; 139 class GxSoundCue; 140 class GxTimeSpan; 141 class GxTimeStamp; 142 class GxTimePrimitive; 143 class GxTour; 144 class GxTourControl; 145 class GxTourPrimitive; 146 class GxTrack; 147 class GxWait; 148 149 typedef boost::intrusive_ptr<Element> ElementPtr; 150 typedef boost::intrusive_ptr<Field> FieldPtr; 151 152 typedef boost::intrusive_ptr<AbstractLatLonBox> AbstractLatLonBoxPtr; 153 typedef boost::intrusive_ptr<AbstractLink> AbstractLinkPtr; 154 typedef boost::intrusive_ptr<AbstractView> AbstractViewPtr; 155 typedef boost::intrusive_ptr<BasicLink> BasicLinkPtr; 156 typedef boost::intrusive_ptr<ColorStyle> ColorStylePtr; 157 typedef boost::intrusive_ptr<Container> ContainerPtr; 158 typedef boost::intrusive_ptr<Feature> FeaturePtr; 159 typedef boost::intrusive_ptr<Geometry> GeometryPtr; 160 typedef boost::intrusive_ptr<Object> ObjectPtr; 161 typedef boost::intrusive_ptr<Overlay> OverlayPtr; 162 typedef boost::intrusive_ptr<StyleSelector> StyleSelectorPtr; 163 typedef boost::intrusive_ptr<SubStyle> SubStylePtr; 164 typedef boost::intrusive_ptr<TimePrimitive> TimePrimitivePtr; 165 typedef boost::intrusive_ptr<Vec2> Vec2Ptr; 166 167 typedef boost::intrusive_ptr<Alias> AliasPtr; 168 typedef boost::intrusive_ptr<AtomAuthor> AtomAuthorPtr; 169 typedef boost::intrusive_ptr<AtomCategory> AtomCategoryPtr; 170 typedef boost::intrusive_ptr<AtomContent> AtomContentPtr; 171 typedef boost::intrusive_ptr<AtomEntry> AtomEntryPtr; 172 typedef boost::intrusive_ptr<AtomFeed> AtomFeedPtr; 173 typedef boost::intrusive_ptr<AtomLink> AtomLinkPtr; 174 typedef boost::intrusive_ptr<BalloonStyle> BalloonStylePtr; 175 typedef boost::intrusive_ptr<Camera> CameraPtr; 176 typedef boost::intrusive_ptr<Change> ChangePtr; 177 typedef boost::intrusive_ptr<Coordinates> CoordinatesPtr; 178 typedef boost::intrusive_ptr<Create> CreatePtr; 179 typedef boost::intrusive_ptr<Data> DataPtr; 180 typedef boost::intrusive_ptr<Delete> DeletePtr; 181 typedef boost::intrusive_ptr<Document> DocumentPtr; 182 typedef boost::intrusive_ptr<ExtendedData> ExtendedDataPtr; 183 typedef boost::intrusive_ptr<Folder> FolderPtr; 184 typedef boost::intrusive_ptr<GroundOverlay> GroundOverlayPtr; 185 typedef boost::intrusive_ptr<Icon> IconPtr; 186 typedef boost::intrusive_ptr<IconStyle> IconStylePtr; 187 typedef boost::intrusive_ptr<IconStyleIcon> IconStyleIconPtr; 188 typedef boost::intrusive_ptr<ImagePyramid> ImagePyramidPtr; 189 typedef boost::intrusive_ptr<ItemIcon> ItemIconPtr; 190 typedef boost::intrusive_ptr<LabelStyle> LabelStylePtr; 191 typedef boost::intrusive_ptr<LatLonAltBox> LatLonAltBoxPtr; 192 typedef boost::intrusive_ptr<LatLonBox> LatLonBoxPtr; 193 typedef boost::intrusive_ptr<LineString> LineStringPtr; 194 typedef boost::intrusive_ptr<LineStyle> LineStylePtr; 195 typedef boost::intrusive_ptr<LinearRing> LinearRingPtr; 196 typedef boost::intrusive_ptr<Link> LinkPtr; 197 typedef boost::intrusive_ptr<ListStyle> ListStylePtr; 198 typedef boost::intrusive_ptr<Location> LocationPtr; 199 typedef boost::intrusive_ptr<Lod> LodPtr; 200 typedef boost::intrusive_ptr<LookAt> LookAtPtr; 201 typedef boost::intrusive_ptr<Metadata> MetadataPtr; 202 typedef boost::intrusive_ptr<Model> ModelPtr; 203 typedef boost::intrusive_ptr<MultiGeometry> MultiGeometryPtr; 204 typedef boost::intrusive_ptr<NetworkLink> NetworkLinkPtr; 205 typedef boost::intrusive_ptr<NetworkLinkControl> NetworkLinkControlPtr; 206 typedef boost::intrusive_ptr<Orientation> OrientationPtr; 207 typedef boost::intrusive_ptr<Pair> PairPtr; 208 typedef boost::intrusive_ptr<PhotoOverlay> PhotoOverlayPtr; 209 typedef boost::intrusive_ptr<Placemark> PlacemarkPtr; 210 typedef boost::intrusive_ptr<Point> PointPtr; 211 typedef boost::intrusive_ptr<PolyStyle> PolyStylePtr; 212 typedef boost::intrusive_ptr<Polygon> PolygonPtr; 213 typedef boost::intrusive_ptr<Region> RegionPtr; 214 typedef boost::intrusive_ptr<ResourceMap> ResourceMapPtr; 215 typedef boost::intrusive_ptr<Scale> ScalePtr; 216 typedef boost::intrusive_ptr<Schema> SchemaPtr; 217 typedef boost::intrusive_ptr<SchemaData> SchemaDataPtr; 218 typedef boost::intrusive_ptr<ScreenOverlay> ScreenOverlayPtr; 219 typedef boost::intrusive_ptr<SimpleData> SimpleDataPtr; 220 typedef boost::intrusive_ptr<SimpleField> SimpleFieldPtr; 221 typedef boost::intrusive_ptr<Snippet> SnippetPtr; 222 typedef boost::intrusive_ptr<Style> StylePtr; 223 typedef boost::intrusive_ptr<StyleMap> StyleMapPtr; 224 typedef boost::intrusive_ptr<TimeSpan> TimeSpanPtr; 225 typedef boost::intrusive_ptr<TimeStamp> TimeStampPtr; 226 typedef boost::intrusive_ptr<Update> UpdatePtr; 227 typedef boost::intrusive_ptr<UpdateOperation> UpdateOperationPtr; 228 typedef boost::intrusive_ptr<Url> UrlPtr; 229 typedef boost::intrusive_ptr<ViewVolume> ViewVolumePtr; 230 typedef boost::intrusive_ptr<HotSpot> HotSpotPtr; 231 typedef boost::intrusive_ptr<InnerBoundaryIs> InnerBoundaryIsPtr; 232 typedef boost::intrusive_ptr<Kml> KmlPtr; 233 typedef boost::intrusive_ptr<LinkSnippet> LinkSnippetPtr; 234 typedef boost::intrusive_ptr<OuterBoundaryIs> OuterBoundaryIsPtr; 235 typedef boost::intrusive_ptr<OverlayXY> OverlayXYPtr; 236 typedef boost::intrusive_ptr<RotationXY> RotationXYPtr; 237 typedef boost::intrusive_ptr<ScreenXY> ScreenXYPtr; 238 typedef boost::intrusive_ptr<Size> SizePtr; 239 240 typedef boost::intrusive_ptr<XalAddressDetails> XalAddressDetailsPtr; 241 typedef boost::intrusive_ptr<XalAdministrativeArea> XalAdministrativeAreaPtr; 242 typedef boost::intrusive_ptr<XalCountry> XalCountryPtr; 243 typedef boost::intrusive_ptr<XalLocality> XalLocalityPtr; 244 typedef boost::intrusive_ptr<XalPostalCode> XalPostalCodePtr; 245 typedef boost::intrusive_ptr<XalSubAdministrativeArea> 246 XalSubAdministrativeAreaPtr; 247 typedef boost::intrusive_ptr<XalThoroughfare> XalThoroughfarePtr; 248 249 typedef boost::intrusive_ptr<GxAnimatedUpdate> GxAnimatedUpdatePtr; 250 typedef boost::intrusive_ptr<GxFlyTo> GxFlyToPtr; 251 typedef boost::intrusive_ptr<GxLatLonQuad> GxLatLonQuadPtr; 252 typedef boost::intrusive_ptr<GxMultiTrack> GxMultiTrackPtr; 253 typedef boost::intrusive_ptr<GxPlaylist> GxPlaylistPtr; 254 typedef boost::intrusive_ptr<GxSimpleArrayField> GxSimpleArrayFieldPtr; 255 typedef boost::intrusive_ptr<GxSimpleArrayData> GxSimpleArrayDataPtr; 256 typedef boost::intrusive_ptr<GxSoundCue> GxSoundCuePtr; 257 typedef boost::intrusive_ptr<GxTimeSpan> GxTimeSpanPtr; 258 typedef boost::intrusive_ptr<GxTimeStamp> GxTimeStampPtr; 259 typedef boost::intrusive_ptr<GxTour> GxTourPtr; 260 typedef boost::intrusive_ptr<GxTourControl> GxTourControlPtr; 261 typedef boost::intrusive_ptr<GxTourPrimitive> GxTourPrimitivePtr; 262 typedef boost::intrusive_ptr<GxTrack> GxTrackPtr; 263 typedef boost::intrusive_ptr<GxWait> GxWaitPtr; 264 265 } // end namespace kmldom 266 267 #endif // KML_DOM_KML_PTR_H__ 268