// Copyright 2008, Google Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // 3. Neither the name of Google Inc. nor the names of its contributors may be // used to endorse or promote products derived from this software without // specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef KML_DOM_KML_PTR_H__ #define KML_DOM_KML_PTR_H__ #include "boost/intrusive_ptr.hpp" namespace kmldom { class Element; class Field; class AbstractLatLonBox; class AbstractLink; class AbstractView; class BasicLink; class ColorStyle; class Container; class Feature; class Geometry; class Object; class Overlay; class StyleSelector; class SubStyle; class TimePrimitive; class Vec2; class Alias; class AtomAuthor; class AtomCategory; class AtomContent; class AtomEntry; class AtomFeed; class AtomLink; class BalloonStyle; class Camera; class Change; class Coordinates; class Create; class Data; class Delete; class Document; class ExtendedData; class Folder; class GroundOverlay; class Icon; class IconStyle; class IconStyleIcon; class ImagePyramid; class ItemIcon; class LabelStyle; class LatLonAltBox; class LatLonBox; class LineString; class LineStyle; class LinearRing; class Link; class ListStyle; class Location; class Lod; class LookAt; class Metadata; class Model; class MultiGeometry; class NetworkLink; class NetworkLinkControl; class Orientation; class Pair; class PhotoOverlay; class Placemark; class Point; class PolyStyle; class Polygon; class Region; class ResourceMap; class Scale; class Schema; class SchemaData; class ScreenOverlay; class SimpleData; class SimpleField; class Snippet; class Style; class StyleMap; class TimeSpan; class TimeStamp; class Update; class UpdateOperation; class Url; class ViewVolume; class HotSpot; class InnerBoundaryIs; class Kml; class LinkSnippet; class OuterBoundaryIs; class OverlayXY; class RotationXY; class ScreenXY; class Size; class XalAddressDetails; class XalAdministrativeArea; class XalCountry; class XalLocality; class XalPostalCode; class XalSubAdministrativeArea; class XalThoroughfare; class GxAnimatedUpdate; class GxFlyTo; class GxLatLonQuad; class GxMultiTrack; class GxPlaylist; class GxSimpleArrayField; class GxSimpleArrayData; class GxSoundCue; class GxTimeSpan; class GxTimeStamp; class GxTimePrimitive; class GxTour; class GxTourControl; class GxTourPrimitive; class GxTrack; class GxWait; typedef boost::intrusive_ptr ElementPtr; typedef boost::intrusive_ptr FieldPtr; typedef boost::intrusive_ptr AbstractLatLonBoxPtr; typedef boost::intrusive_ptr AbstractLinkPtr; typedef boost::intrusive_ptr AbstractViewPtr; typedef boost::intrusive_ptr BasicLinkPtr; typedef boost::intrusive_ptr ColorStylePtr; typedef boost::intrusive_ptr ContainerPtr; typedef boost::intrusive_ptr FeaturePtr; typedef boost::intrusive_ptr GeometryPtr; typedef boost::intrusive_ptr ObjectPtr; typedef boost::intrusive_ptr OverlayPtr; typedef boost::intrusive_ptr StyleSelectorPtr; typedef boost::intrusive_ptr SubStylePtr; typedef boost::intrusive_ptr TimePrimitivePtr; typedef boost::intrusive_ptr Vec2Ptr; typedef boost::intrusive_ptr AliasPtr; typedef boost::intrusive_ptr AtomAuthorPtr; typedef boost::intrusive_ptr AtomCategoryPtr; typedef boost::intrusive_ptr AtomContentPtr; typedef boost::intrusive_ptr AtomEntryPtr; typedef boost::intrusive_ptr AtomFeedPtr; typedef boost::intrusive_ptr AtomLinkPtr; typedef boost::intrusive_ptr BalloonStylePtr; typedef boost::intrusive_ptr CameraPtr; typedef boost::intrusive_ptr ChangePtr; typedef boost::intrusive_ptr CoordinatesPtr; typedef boost::intrusive_ptr CreatePtr; typedef boost::intrusive_ptr DataPtr; typedef boost::intrusive_ptr DeletePtr; typedef boost::intrusive_ptr DocumentPtr; typedef boost::intrusive_ptr ExtendedDataPtr; typedef boost::intrusive_ptr FolderPtr; typedef boost::intrusive_ptr GroundOverlayPtr; typedef boost::intrusive_ptr IconPtr; typedef boost::intrusive_ptr IconStylePtr; typedef boost::intrusive_ptr IconStyleIconPtr; typedef boost::intrusive_ptr ImagePyramidPtr; typedef boost::intrusive_ptr ItemIconPtr; typedef boost::intrusive_ptr LabelStylePtr; typedef boost::intrusive_ptr LatLonAltBoxPtr; typedef boost::intrusive_ptr LatLonBoxPtr; typedef boost::intrusive_ptr LineStringPtr; typedef boost::intrusive_ptr LineStylePtr; typedef boost::intrusive_ptr LinearRingPtr; typedef boost::intrusive_ptr LinkPtr; typedef boost::intrusive_ptr ListStylePtr; typedef boost::intrusive_ptr LocationPtr; typedef boost::intrusive_ptr LodPtr; typedef boost::intrusive_ptr LookAtPtr; typedef boost::intrusive_ptr MetadataPtr; typedef boost::intrusive_ptr ModelPtr; typedef boost::intrusive_ptr MultiGeometryPtr; typedef boost::intrusive_ptr NetworkLinkPtr; typedef boost::intrusive_ptr NetworkLinkControlPtr; typedef boost::intrusive_ptr OrientationPtr; typedef boost::intrusive_ptr PairPtr; typedef boost::intrusive_ptr PhotoOverlayPtr; typedef boost::intrusive_ptr PlacemarkPtr; typedef boost::intrusive_ptr PointPtr; typedef boost::intrusive_ptr PolyStylePtr; typedef boost::intrusive_ptr PolygonPtr; typedef boost::intrusive_ptr RegionPtr; typedef boost::intrusive_ptr ResourceMapPtr; typedef boost::intrusive_ptr ScalePtr; typedef boost::intrusive_ptr SchemaPtr; typedef boost::intrusive_ptr SchemaDataPtr; typedef boost::intrusive_ptr ScreenOverlayPtr; typedef boost::intrusive_ptr SimpleDataPtr; typedef boost::intrusive_ptr SimpleFieldPtr; typedef boost::intrusive_ptr SnippetPtr; typedef boost::intrusive_ptr