Blame include/Event.h

Packit 8a864e
// Copyright (c) 1994 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef Event_INCLUDED
Packit 8a864e
#define Event_INCLUDED 1
Packit 8a864e
#ifdef __GNUG__
Packit 8a864e
#pragma interface
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#include "Link.h"
Packit 8a864e
#include "Allocator.h"
Packit 8a864e
#include "Location.h"
Packit 8a864e
#include "Vector.h"
Packit 8a864e
#include "Owner.h"
Packit 8a864e
#include "Boolean.h"
Packit 8a864e
#include "types.h"
Packit 8a864e
#include "Ptr.h"
Packit 8a864e
#include "StringC.h"
Packit 8a864e
#include "Notation.h"
Packit 8a864e
#include "Sd.h"
Packit 8a864e
#include "Syntax.h"
Packit 8a864e
#include "Dtd.h"
Packit 8a864e
#include "ElementType.h"
Packit 8a864e
#include "Text.h"
Packit 8a864e
#include "Lpd.h"
Packit 8a864e
#include "Message.h"
Packit 8a864e
#include "Markup.h"
Packit 8a864e
#include "ShortReferenceMap.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
class EventHandler;
Packit 8a864e
Packit 8a864e
class SP_API Event : public Link {
Packit 8a864e
public:
Packit 8a864e
  enum Type {
Packit 8a864e
    message,
Packit 8a864e
    characterData,
Packit 8a864e
    startElement,
Packit 8a864e
    endElement,
Packit 8a864e
    pi,
Packit 8a864e
    sdataEntity,
Packit 8a864e
    externalDataEntity,
Packit 8a864e
    subdocEntity,
Packit 8a864e
    nonSgmlChar,
Packit 8a864e
    appinfo,
Packit 8a864e
    startDtd,
Packit 8a864e
    endDtd,
Packit 8a864e
    startLpd,
Packit 8a864e
    endLpd,
Packit 8a864e
    endProlog,
Packit 8a864e
    sgmlDecl,
Packit 8a864e
    uselink,
Packit 8a864e
    usemap,
Packit 8a864e
    commentDecl,
Packit 8a864e
    sSep,
Packit 8a864e
    ignoredRs,
Packit 8a864e
    ignoredRe,
Packit 8a864e
    reOrigin,
Packit 8a864e
    ignoredChars,
Packit 8a864e
    markedSectionStart,
Packit 8a864e
    markedSectionEnd,
Packit 8a864e
    entityStart,
Packit 8a864e
    entityEnd,
Packit 8a864e
    notationDecl,
Packit 8a864e
    entityDecl,
Packit 8a864e
    elementDecl,
Packit 8a864e
    attlistDecl,		// not #NOTATION and not in LPD
Packit 8a864e
    attlistNotationDecl,
Packit 8a864e
    linkAttlistDecl,
Packit 8a864e
    linkDecl,
Packit 8a864e
    idLinkDecl,
Packit 8a864e
    shortrefDecl,
Packit 8a864e
    ignoredMarkup,
Packit 8a864e
    entityDefaulted,
Packit 8a864e
    sgmlDeclEntity
Packit 8a864e
    };
Packit 8a864e
  Event(Type);
Packit 8a864e
  virtual ~Event();
Packit 8a864e
  virtual void handle(EventHandler &) = 0;
Packit 8a864e
  virtual void copyData();
Packit 8a864e
  void *operator new(size_t sz, Allocator &alloc) { return alloc.alloc(sz); }
Packit 8a864e
  void *operator new(size_t sz) { return Allocator::allocSimple(sz); }
Packit 8a864e
  void operator delete(void *p) { Allocator::free(p); }
Packit 8a864e
#ifdef SP_HAVE_PLACEMENT_OPERATOR_DELETE
Packit 8a864e
  void operator delete(void *p, Allocator &) { Allocator::free(p); }
Packit 8a864e
#endif
Packit 8a864e
  Type type() const;
Packit 8a864e
private:
Packit 8a864e
  Event(const Event &);		// undefined
Packit 8a864e
  void operator=(const Event &); // undefined
Packit 8a864e
  Type type_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class LocatedEvent : public Event {
Packit 8a864e
public:
Packit 8a864e
  LocatedEvent(Type type, const Location &);
Packit 8a864e
  const Location &location() const;
Packit 8a864e
private:
Packit 8a864e
  LocatedEvent(const LocatedEvent &); // undefined
Packit 8a864e
  void operator=(const LocatedEvent &);	// undefined
Packit 8a864e
  Location location_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class MarkupEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  MarkupEvent(Type type);
Packit 8a864e
  MarkupEvent(Type type, const Location &, Markup *);
Packit 8a864e
  const Markup &markup() const;
Packit 8a864e
private:
Packit 8a864e
  MarkupEvent(const MarkupEvent &); // undefined
Packit 8a864e
  void operator=(const MarkupEvent &);	// undefined
Packit 8a864e
  Markup markup_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SP_API MessageEvent : public Event {
Packit 8a864e
public:
Packit 8a864e
  MessageEvent(Message &);
Packit 8a864e
  MessageEvent(const Message &);
Packit 8a864e
  ~MessageEvent();
Packit 8a864e
  const Message &message() const;
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  MessageEvent(const MessageEvent &); // undefined
Packit 8a864e
  void operator=(const MessageEvent &);	// undefined
Packit 8a864e
  Message message_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class AttributeList;
Packit 8a864e
Packit 8a864e
class StartElementEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  StartElementEvent(const ElementType *,
Packit 8a864e
		    const ConstPtr<Dtd> &,
Packit 8a864e
		    AttributeList *,
Packit 8a864e
		    const Location &,
Packit 8a864e
		    Markup *);
Packit 8a864e
  ~StartElementEvent();
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Boolean mustOmitEnd() const;
Packit 8a864e
  void setIncluded();
Packit 8a864e
  Boolean included() const;
Packit 8a864e
  const StringC &name() const;
Packit 8a864e
  const ElementType *elementType() const;
Packit 8a864e
  const Markup *markupPtr() const;
Packit 8a864e
  const AttributeList &attributes() const;
Packit 8a864e
  void copyData();
Packit 8a864e
private:
Packit 8a864e
  StartElementEvent(const StartElementEvent &);	// undefined
Packit 8a864e
  void operator=(const StartElementEvent &);	// undefined
Packit 8a864e
  const ElementType *elementType_;
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
  PackedBoolean included_;
Packit 8a864e
  PackedBoolean copied_;	// has copyData() been called
Packit 8a864e
  Markup *markup_;
Packit 8a864e
  AttributeList *attributes_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EndElementEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  EndElementEvent(const ElementType *,
Packit 8a864e
		  const ConstPtr<Dtd> &,
Packit 8a864e
		  const Location &,
Packit 8a864e
		  Markup *);
Packit 8a864e
  ~EndElementEvent();
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  void setIncluded();
Packit 8a864e
  Boolean included() const;
Packit 8a864e
  const StringC &name() const;
Packit 8a864e
  const ElementType *elementType() const;
Packit 8a864e
  const Markup *markupPtr() const;
Packit 8a864e
  void copyData();
Packit 8a864e
private:
Packit 8a864e
  EndElementEvent(const EndElementEvent &); // undefined
Packit 8a864e
  void operator=(const EndElementEvent &);  // undefined
Packit 8a864e
  const ElementType *elementType_;
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
  PackedBoolean included_;
Packit 8a864e
  PackedBoolean copied_;	// has copyData() been called
Packit 8a864e
  Markup *markup_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class DataEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  DataEvent(Type, const Char *, size_t, const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Char *data() const;
Packit 8a864e
  size_t dataLength() const;
Packit 8a864e
  virtual Boolean isRe(unsigned long &serial) const;
Packit 8a864e
  virtual const Entity *entity() const;
Packit 8a864e
protected:
Packit 8a864e
  const Char *p_;
Packit 8a864e
  size_t length_;
Packit 8a864e
private:
Packit 8a864e
  DataEvent(const DataEvent &);	// undefined
Packit 8a864e
  void operator=(const DataEvent &); // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ImmediateDataEvent : public DataEvent {
Packit 8a864e
public:
Packit 8a864e
  ImmediateDataEvent(Type type, const Char *, size_t, const Location &,
Packit 8a864e
		     Boolean copy);
Packit 8a864e
  ~ImmediateDataEvent();
Packit 8a864e
  void copyData();
Packit 8a864e
private:
Packit 8a864e
  ImmediateDataEvent(const ImmediateDataEvent &); // undefined
Packit 8a864e
  void operator=(const ImmediateDataEvent &);	  // undefined
Packit 8a864e
  Char *alloc_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class InternalDataEntity;
Packit 8a864e
Packit 8a864e
class DataEntityEvent : public DataEvent {
Packit 8a864e
public:
Packit 8a864e
  DataEntityEvent(Type type, const InternalEntity *,
Packit 8a864e
		  const ConstPtr<Origin> &);
Packit 8a864e
  const Entity *entity() const;
Packit 8a864e
private:
Packit 8a864e
  DataEntityEvent(const DataEntityEvent &); // undefined
Packit 8a864e
  void operator=(const DataEntityEvent &);  // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class InternalCdataEntity;
Packit 8a864e
Packit 8a864e
class CdataEntityEvent : public DataEntityEvent {
Packit 8a864e
public:
Packit 8a864e
  CdataEntityEvent(const InternalEntity *,
Packit 8a864e
		   const ConstPtr<Origin> &);
Packit 8a864e
private:
Packit 8a864e
  CdataEntityEvent(const CdataEntityEvent &); // undefined
Packit 8a864e
  void operator=(const CdataEntityEvent &);   // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class InternalSdataEntity;
Packit 8a864e
Packit 8a864e
class SdataEntityEvent : public DataEntityEvent {
Packit 8a864e
public:
Packit 8a864e
  SdataEntityEvent(const InternalEntity *,
Packit 8a864e
		   const ConstPtr<Origin> &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  SdataEntityEvent(const SdataEntityEvent &); // undefined
Packit 8a864e
  void operator=(const SdataEntityEvent &);   // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class PiEntity;
Packit 8a864e
Packit 8a864e
class PiEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  PiEvent(const Char *, size_t, const Location &);
Packit 8a864e
  const Char *data() const;
Packit 8a864e
  size_t dataLength() const;
Packit 8a864e
  virtual const Entity *entity() const;
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  PiEvent(const PiEvent &);	// undefined
Packit 8a864e
  void operator=(const PiEvent &); // undefined
Packit 8a864e
  const Char *data_;
Packit 8a864e
  size_t dataLength_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ImmediatePiEvent : public PiEvent {
Packit 8a864e
public:
Packit 8a864e
  ImmediatePiEvent(StringC &, const Location &);
Packit 8a864e
private:
Packit 8a864e
  ImmediatePiEvent(const ImmediatePiEvent &); // undefined
Packit 8a864e
  void operator=(const ImmediatePiEvent &);   // undefined
Packit 8a864e
  StringC string_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class PiEntityEvent : public PiEvent {
Packit 8a864e
public:
Packit 8a864e
  PiEntityEvent(const PiEntity *entity,
Packit 8a864e
		const ConstPtr<Origin> &origin);
Packit 8a864e
  const Entity *entity() const;
Packit 8a864e
private:
Packit 8a864e
  PiEntityEvent(const PiEntityEvent &);	// undefined
Packit 8a864e
  void operator=(const PiEntityEvent &); // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ExternalNonTextEntity;
Packit 8a864e
class ExternalDataEntity;
Packit 8a864e
class SubdocEntity;
Packit 8a864e
Packit 8a864e
class ExternalEntityEvent : public Event {
Packit 8a864e
public:
Packit 8a864e
  ExternalEntityEvent(Type type,
Packit 8a864e
		      const ConstPtr<EntityOrigin> &);
Packit 8a864e
  const ConstPtr<EntityOrigin> &entityOrigin() const;
Packit 8a864e
  const Location &location() const;
Packit 8a864e
private:
Packit 8a864e
  ExternalEntityEvent(const ExternalEntityEvent &); // undefined
Packit 8a864e
  void operator=(const ExternalEntityEvent &);	    // undefined
Packit 8a864e
  ConstPtr<EntityOrigin> origin_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ExternalDataEntityEvent : public ExternalEntityEvent {
Packit 8a864e
public:
Packit 8a864e
  ExternalDataEntityEvent(const ExternalDataEntity *,
Packit 8a864e
			  const ConstPtr<EntityOrigin> &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const ExternalDataEntity *entity() const;
Packit 8a864e
private:
Packit 8a864e
  ExternalDataEntityEvent(const ExternalDataEntityEvent &); // undefined
Packit 8a864e
  void operator=(const ExternalDataEntityEvent &);	    // undefined
Packit 8a864e
  const ExternalDataEntity *dataEntity_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SubdocEntityEvent : public ExternalEntityEvent {
Packit 8a864e
public:
Packit 8a864e
  SubdocEntityEvent(const SubdocEntity *,
Packit 8a864e
		    const ConstPtr<EntityOrigin> &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const SubdocEntity *entity() const;
Packit 8a864e
private:
Packit 8a864e
  SubdocEntityEvent(const SubdocEntityEvent &);	// undefined
Packit 8a864e
  void operator=(const SubdocEntityEvent &);	// undefined
Packit 8a864e
  const SubdocEntity *subdocEntity_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class NonSgmlCharEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  NonSgmlCharEvent(Char c, const Location &);
Packit 8a864e
  Char character() const;
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  NonSgmlCharEvent(const NonSgmlCharEvent &); // undefined
Packit 8a864e
  void operator=(const NonSgmlCharEvent &);   // undefined
Packit 8a864e
  Char c_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class AppinfoEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  AppinfoEvent(const Location &);
Packit 8a864e
  AppinfoEvent(const Text &, const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Boolean literal(const StringC *&) const;
Packit 8a864e
private:
Packit 8a864e
  AppinfoEvent(const AppinfoEvent &); // undefined
Packit 8a864e
  void operator=(const AppinfoEvent &);	// undefined
Packit 8a864e
  Boolean appinfoNone_;
Packit 8a864e
  Text appinfo_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class UselinkEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  UselinkEvent(const ConstPtr<Lpd> &,
Packit 8a864e
	       const LinkSet *,
Packit 8a864e
	       Boolean restore,
Packit 8a864e
	       const Location &,
Packit 8a864e
	       Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const ConstPtr<Lpd> &lpd() const;
Packit 8a864e
  const LinkSet *linkSet() const;
Packit 8a864e
  Boolean restore() const;
Packit 8a864e
private:
Packit 8a864e
  UselinkEvent(const UselinkEvent &); // undefined
Packit 8a864e
  void operator=(const UselinkEvent &);	// undefined
Packit 8a864e
  ConstPtr<Lpd> lpd_;
Packit 8a864e
  const LinkSet *linkSet_;
Packit 8a864e
  Boolean restore_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class UsemapEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  UsemapEvent(const ShortReferenceMap *,
Packit 8a864e
	      Vector<const ElementType *> &,
Packit 8a864e
	      const ConstPtr<Dtd> &,
Packit 8a864e
	      const Location &,
Packit 8a864e
	      Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const ShortReferenceMap *map() const;
Packit 8a864e
  const Vector<const ElementType *> &elements() const;
Packit 8a864e
private:
Packit 8a864e
  UsemapEvent(const UsemapEvent &); // undefined
Packit 8a864e
  void operator=(const UsemapEvent &); // undefined
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
  Vector<const ElementType *> elements_;
Packit 8a864e
  const ShortReferenceMap *map_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class StartSubsetEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  StartSubsetEvent(Type,
Packit 8a864e
		   const StringC &,
Packit 8a864e
		   const ConstPtr<Entity> &entity,
Packit 8a864e
		   Boolean hasInternalSubset,
Packit 8a864e
		   const Location &,
Packit 8a864e
		   Markup *);
Packit 8a864e
  const StringC &name() const;
Packit 8a864e
  const ConstPtr<Entity> &entity() const;
Packit 8a864e
  Boolean hasInternalSubset() const;
Packit 8a864e
private:
Packit 8a864e
  StartSubsetEvent(const StartSubsetEvent &);	// undefined
Packit 8a864e
  void operator=(const StartSubsetEvent &); // undefined
Packit 8a864e
  StringC name_;
Packit 8a864e
  ConstPtr<Entity> entity_;
Packit 8a864e
  Boolean hasInternalSubset_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class StartDtdEvent : public StartSubsetEvent {
Packit 8a864e
public:
Packit 8a864e
  StartDtdEvent(const StringC &,
Packit 8a864e
		const ConstPtr<Entity> &entity,
Packit 8a864e
		Boolean hasInternalSubset,
Packit 8a864e
		const Location &,
Packit 8a864e
		Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  StartDtdEvent(const StartDtdEvent &);	// undefined
Packit 8a864e
  void operator=(const StartDtdEvent &); // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class StartLpdEvent : public StartSubsetEvent {
Packit 8a864e
public:
Packit 8a864e
  StartLpdEvent(Boolean active,
Packit 8a864e
		const StringC &,
Packit 8a864e
		const ConstPtr<Entity> &entity,
Packit 8a864e
		Boolean hasInternalSubset,
Packit 8a864e
		const Location &,
Packit 8a864e
		Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Boolean active() const;
Packit 8a864e
private:
Packit 8a864e
  StartLpdEvent(const StartLpdEvent &);	// undefined
Packit 8a864e
  void operator=(const StartLpdEvent &); // undefined
Packit 8a864e
  Boolean active_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EndDtdEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  EndDtdEvent(const ConstPtr<Dtd> &, const Location &,
Packit 8a864e
	      Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Dtd &dtd() const;
Packit 8a864e
  const ConstPtr<Dtd> &dtdPointer() const;
Packit 8a864e
private:
Packit 8a864e
  EndDtdEvent(const EndDtdEvent &); // undefined
Packit 8a864e
  void operator=(const EndDtdEvent &); // undefined
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EndLpdEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  EndLpdEvent(const ConstPtr<Lpd> &, const Location &,
Packit 8a864e
	      Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Lpd &lpd() const;
Packit 8a864e
  const ConstPtr<Lpd> &lpdPointer() const;
Packit 8a864e
private:
Packit 8a864e
  EndLpdEvent(const EndLpdEvent &); // undefined
Packit 8a864e
  void operator=(const EndLpdEvent &); // undefined
Packit 8a864e
  ConstPtr<Lpd> lpd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EndPrologEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  EndPrologEvent(const ConstPtr<Dtd> &dtd,
Packit 8a864e
		 const ConstPtr<ComplexLpd> &lpd,
Packit 8a864e
		 Vector<StringC> &simpleLinkNames,
Packit 8a864e
		 Vector<AttributeList> &simpleLinkAttributes,
Packit 8a864e
		 const Location &);
Packit 8a864e
  EndPrologEvent(const ConstPtr<Dtd> &dtd,
Packit 8a864e
		 const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Dtd &dtd() const;
Packit 8a864e
  const ConstPtr<Dtd> &dtdPointer() const;
Packit 8a864e
  const ConstPtr<ComplexLpd> &lpdPointer() const;
Packit 8a864e
  const Vector<StringC> &simpleLinkNames() const;
Packit 8a864e
  const Vector<AttributeList> &simpleLinkAttributes() const;
Packit 8a864e
private:
Packit 8a864e
  EndPrologEvent(const EndPrologEvent &); // undefined
Packit 8a864e
  void operator=(const EndPrologEvent &); // undefined
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
  ConstPtr<ComplexLpd> lpd_;
Packit 8a864e
  Vector<StringC> simpleLinkNames_;
Packit 8a864e
  Vector<AttributeList> simpleLinkAttributes_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SgmlDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  // for an implied SGML declaration
Packit 8a864e
  SgmlDeclEvent(const ConstPtr<Sd> &,
Packit 8a864e
		const ConstPtr<Syntax> &syntax);
Packit 8a864e
  // for an explicit SGML declaration
Packit 8a864e
  SgmlDeclEvent(const ConstPtr<Sd> &,
Packit 8a864e
		const ConstPtr<Syntax> &syntax,
Packit 8a864e
		const ConstPtr<Syntax> &instanceSyntax,
Packit 8a864e
		const ConstPtr<Sd> &refSd,
Packit 8a864e
		const ConstPtr<Syntax> &refSyntax,
Packit 8a864e
		Index nextIndex,
Packit 8a864e
		const StringC &implySystemId,
Packit 8a864e
		const Location &,
Packit 8a864e
		Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Sd &sd() const;
Packit 8a864e
  const ConstPtr<Sd> &sdPointer() const;
Packit 8a864e
  const Syntax &prologSyntax() const;
Packit 8a864e
  const ConstPtr<Syntax> &prologSyntaxPointer() const;
Packit 8a864e
  const Syntax &instanceSyntax() const;
Packit 8a864e
  const ConstPtr<Syntax> &instanceSyntaxPointer() const;
Packit 8a864e
  const ConstPtr<Sd> &refSdPointer() const;
Packit 8a864e
  const ConstPtr<Syntax> &refSyntaxPointer() const;
Packit 8a864e
  const StringC &implySystemId() const;
Packit 8a864e
private:
Packit 8a864e
  SgmlDeclEvent(const SgmlDeclEvent &);	// undefined
Packit 8a864e
  void operator=(const SgmlDeclEvent &); // undefined
Packit 8a864e
  ConstPtr<Sd> sd_;
Packit 8a864e
  ConstPtr<Syntax> prologSyntax_;
Packit 8a864e
  ConstPtr<Syntax> instanceSyntax_;
Packit 8a864e
  ConstPtr<Sd> refSd_;
Packit 8a864e
  ConstPtr<Syntax> refSyntax_;
Packit 8a864e
  Index nextIndex_;
Packit 8a864e
  StringC implySystemId_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class CommentDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  CommentDeclEvent(const Location &, Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  CommentDeclEvent(const CommentDeclEvent &); // undefined
Packit 8a864e
  void operator=(const CommentDeclEvent &);   // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SSepEvent : public ImmediateDataEvent {
Packit 8a864e
public:
Packit 8a864e
  SSepEvent(const Char *, size_t, const Location &, Boolean copy);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  SSepEvent(const SSepEvent &);	// undefined
Packit 8a864e
  void operator=(const SSepEvent &); // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class IgnoredRsEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  IgnoredRsEvent(Char c, const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Char rs() const;
Packit 8a864e
private:
Packit 8a864e
  IgnoredRsEvent(const IgnoredRsEvent &); // undefined
Packit 8a864e
  void operator=(const IgnoredRsEvent &); // undefined
Packit 8a864e
  Char c_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class IgnoredReEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  IgnoredReEvent(Char c, const Location &, unsigned long serial);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Char re() const;
Packit 8a864e
  unsigned long serial() const;
Packit 8a864e
private:
Packit 8a864e
  IgnoredReEvent(const IgnoredReEvent &); // undefined
Packit 8a864e
  void operator=(const IgnoredReEvent &); // undefined
Packit 8a864e
  unsigned long serial_;
Packit 8a864e
  Char c_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ReEvent : public ImmediateDataEvent {
Packit 8a864e
public:
Packit 8a864e
  ReEvent(const Char *, const Location &, unsigned long serial);
Packit 8a864e
  Boolean isRe(unsigned long &serial) const;
Packit 8a864e
private:
Packit 8a864e
  ReEvent(const ReEvent &);	// undefined
Packit 8a864e
  void operator=(const ReEvent &); // undefined
Packit 8a864e
  unsigned long serial_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ReOriginEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  ReOriginEvent(Char c, const Location &, unsigned long serial);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  Char re() const;
Packit 8a864e
  unsigned long serial() const;
Packit 8a864e
private:
Packit 8a864e
  ReOriginEvent(const ReOriginEvent &);	// undefined
Packit 8a864e
  void operator=(const ReOriginEvent &); // undefined
Packit 8a864e
  unsigned long serial_;
Packit 8a864e
  Char c_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class IgnoredCharsEvent : public ImmediateDataEvent {
Packit 8a864e
public:
Packit 8a864e
  IgnoredCharsEvent(const Char *, size_t, const Location &, Boolean copy);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  IgnoredCharsEvent(const IgnoredCharsEvent &);	// undefined
Packit 8a864e
  void operator=(const IgnoredCharsEvent &);	// undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class MarkedSectionEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  enum Status { include, rcdata, cdata, ignore }; // in priority order
Packit 8a864e
  MarkedSectionEvent(Type, Status, const Location &, Markup *);
Packit 8a864e
  Status status() const;
Packit 8a864e
private:
Packit 8a864e
  MarkedSectionEvent(const MarkedSectionEvent &); // undefined
Packit 8a864e
  void operator=(const MarkedSectionEvent &);	  // undefined
Packit 8a864e
  Status status_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class MarkedSectionStartEvent : public MarkedSectionEvent {
Packit 8a864e
public:
Packit 8a864e
  MarkedSectionStartEvent(Status, const Location &, Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  MarkedSectionStartEvent(const MarkedSectionStartEvent &); // undefined
Packit 8a864e
  void operator=(const MarkedSectionStartEvent &);	    // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class MarkedSectionEndEvent : public MarkedSectionEvent {
Packit 8a864e
public:
Packit 8a864e
  MarkedSectionEndEvent(Status, const Location &, Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  MarkedSectionEndEvent(const MarkedSectionEndEvent &); // undefined
Packit 8a864e
  void operator=(const MarkedSectionEndEvent &);	    // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EntityStartEvent : public Event {
Packit 8a864e
public:
Packit 8a864e
  EntityStartEvent(const ConstPtr<EntityOrigin> &origin);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Entity *entity() const;
Packit 8a864e
  const ConstPtr<EntityOrigin> &entityOrigin() const;
Packit 8a864e
private:
Packit 8a864e
  EntityStartEvent(const EntityStartEvent &); // undefined
Packit 8a864e
  void operator=(const EntityStartEvent &); // undefined
Packit 8a864e
Packit 8a864e
  ConstPtr<EntityOrigin> origin_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EntityEndEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  EntityEndEvent(const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  EntityEndEvent(const EntityEndEvent &); // undefined
Packit 8a864e
  void operator=(const EntityEndEvent &); // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class EntityDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  EntityDeclEvent(const ConstPtr<Entity> &,
Packit 8a864e
		  Boolean ignored,
Packit 8a864e
		  const Location &,
Packit 8a864e
		  Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Entity &entity() const;
Packit 8a864e
  const ConstPtr<Entity> &entityPointer() const;
Packit 8a864e
  Boolean ignored() const;
Packit 8a864e
  // The name of the entity will be empty if this is the default entity.
Packit 8a864e
private:
Packit 8a864e
  Boolean ignored_;
Packit 8a864e
  // This will actually point to an external entity.
Packit 8a864e
  ConstPtr<Entity> entity_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class NotationDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  NotationDeclEvent(const ConstPtr<Notation> &,
Packit 8a864e
		    const Location &,
Packit 8a864e
		    Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Notation &notation() const;
Packit 8a864e
  const ConstPtr<Notation> &notationPointer() const;
Packit 8a864e
private:
Packit 8a864e
  NotationDeclEvent(const NotationDeclEvent &);	// undefined
Packit 8a864e
  void operator=(const NotationDeclEvent &);	// undefined
Packit 8a864e
  ConstPtr<Notation> notation_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ElementDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  ElementDeclEvent(Vector<const ElementType *> &elements,
Packit 8a864e
		   const ConstPtr<Dtd> &,
Packit 8a864e
		   const Location &,
Packit 8a864e
		   Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Vector<const ElementType *> &elements() const;
Packit 8a864e
private:
Packit 8a864e
  ElementDeclEvent(const ElementDeclEvent &); // undefined
Packit 8a864e
  void operator=(const ElementDeclEvent &);   // undefined
Packit 8a864e
  Vector<const ElementType *> elements_;
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class AttlistDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  AttlistDeclEvent(Vector<const ElementType *> &elements,
Packit 8a864e
		   const ConstPtr<Dtd> &,
Packit 8a864e
		   const Location &,
Packit 8a864e
		   Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Vector<const ElementType *> &elements() const;
Packit 8a864e
private:
Packit 8a864e
  AttlistDeclEvent(const AttlistDeclEvent &); // undefined
Packit 8a864e
  void operator=(const AttlistDeclEvent &);   // undefined
Packit 8a864e
  Vector<const ElementType *> elements_;
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class AttlistNotationDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  AttlistNotationDeclEvent(Vector<ConstPtr<Notation> > &notations,
Packit 8a864e
			   const Location &,
Packit 8a864e
			   Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Vector<ConstPtr<Notation> > &notations() const;
Packit 8a864e
private:
Packit 8a864e
  AttlistNotationDeclEvent(const AttlistNotationDeclEvent &); // undefined
Packit 8a864e
  void operator=(const AttlistDeclEvent &);		      // undefined
Packit 8a864e
  Vector<ConstPtr<Notation> > notations_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class LinkAttlistDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  LinkAttlistDeclEvent(Vector<const ElementType *> &elements,
Packit 8a864e
		       const ConstPtr<Lpd> &,
Packit 8a864e
		       const Location &,
Packit 8a864e
		       Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Vector<const ElementType *> &elements() const;
Packit 8a864e
  const Lpd &lpd() const;
Packit 8a864e
private:
Packit 8a864e
  LinkAttlistDeclEvent(const LinkAttlistDeclEvent &); // undefined
Packit 8a864e
  void operator=(const LinkAttlistDeclEvent &);   // undefined
Packit 8a864e
  Vector<const ElementType *> elements_;
Packit 8a864e
  ConstPtr<Lpd> lpd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class LinkDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  LinkDeclEvent(const LinkSet *linkSet,
Packit 8a864e
		const ConstPtr<ComplexLpd> &,
Packit 8a864e
		const Location &,
Packit 8a864e
		Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const LinkSet *linkSet() const;
Packit 8a864e
  const ComplexLpd &lpd() const;
Packit 8a864e
private:
Packit 8a864e
  LinkDeclEvent(const LinkDeclEvent &); // undefined
Packit 8a864e
  void operator=(const LinkDeclEvent &); // undefined
Packit 8a864e
  const LinkSet *linkSet_;
Packit 8a864e
  ConstPtr<ComplexLpd> lpd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class IdLinkDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  IdLinkDeclEvent(const ConstPtr<ComplexLpd> &,
Packit 8a864e
		  const Location &,
Packit 8a864e
		  Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const ComplexLpd &lpd() const;
Packit 8a864e
private:
Packit 8a864e
  IdLinkDeclEvent(const IdLinkDeclEvent &); // undefined
Packit 8a864e
  void operator=(const IdLinkDeclEvent &); // undefined
Packit 8a864e
  ConstPtr<ComplexLpd> lpd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class ShortrefDeclEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  ShortrefDeclEvent(const ShortReferenceMap *,
Packit 8a864e
		    const ConstPtr<Dtd> &,
Packit 8a864e
		    const Location &,
Packit 8a864e
		    Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const ShortReferenceMap *map() const;
Packit 8a864e
private:
Packit 8a864e
  ShortrefDeclEvent(const ShortrefDeclEvent &);	// undefined
Packit 8a864e
  void operator=(const ShortrefDeclEvent &);	// undefined
Packit 8a864e
  const ShortReferenceMap *map_;
Packit 8a864e
  ConstPtr<Dtd> dtd_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class IgnoredMarkupEvent : public MarkupEvent {
Packit 8a864e
public:
Packit 8a864e
  IgnoredMarkupEvent(const Location &, Markup *);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
private:
Packit 8a864e
  IgnoredMarkupEvent(const IgnoredMarkupEvent &); // undefined
Packit 8a864e
  void operator=(const IgnoredMarkupEvent &);	  // undefined
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
// This is for an undeclared entity whose first occurrence
Packit 8a864e
// is in the instance, when there is a default entity:
Packit 8a864e
// ie it extends the namespace of general entities after
Packit 8a864e
// the end of the prolog.
Packit 8a864e
Packit 8a864e
class EntityDefaultedEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  EntityDefaultedEvent(const ConstPtr<Entity> &,
Packit 8a864e
		       const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const Entity &entity() const;
Packit 8a864e
  const ConstPtr<Entity> &entityPointer() const;
Packit 8a864e
private:
Packit 8a864e
  EntityDefaultedEvent(const EntityDefaultedEvent &); // undefined
Packit 8a864e
  void operator=(const EntityDefaultedEvent &);	      // undefined
Packit 8a864e
  ConstPtr<Entity> entity_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SgmlDeclEntityEvent : public LocatedEvent {
Packit 8a864e
public:
Packit 8a864e
  SgmlDeclEntityEvent(const PublicId &publicId,
Packit 8a864e
		      PublicId::TextClass entityType,
Packit 8a864e
		      const StringC &effectiveSystemId,
Packit 8a864e
		      const Location &);
Packit 8a864e
  void handle(EventHandler &);
Packit 8a864e
  const PublicId &publicId() const;
Packit 8a864e
  PublicId::TextClass entityType() const;
Packit 8a864e
  const StringC &effectiveSystemId() const;
Packit 8a864e
private:
Packit 8a864e
  SgmlDeclEntityEvent(const SgmlDeclEntityEvent &); // undefined
Packit 8a864e
  void operator=(const SgmlDeclEntityEvent &);	    // undefined
Packit 8a864e
  PublicId publicId_;
Packit 8a864e
  PublicId::TextClass entityType_;
Packit 8a864e
  StringC effectiveSystemId_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SP_API EventHandler {
Packit 8a864e
public:
Packit 8a864e
  virtual ~EventHandler();
Packit 8a864e
  virtual void message(MessageEvent *) = 0;
Packit 8a864e
  virtual void data(DataEvent *);
Packit 8a864e
  virtual void startElement(StartElementEvent *);
Packit 8a864e
  virtual void endElement(EndElementEvent *);
Packit 8a864e
  virtual void pi(PiEvent *);
Packit 8a864e
  virtual void sdataEntity(SdataEntityEvent *);
Packit 8a864e
  virtual void externalDataEntity(ExternalDataEntityEvent *);
Packit 8a864e
  virtual void subdocEntity(SubdocEntityEvent *);
Packit 8a864e
  virtual void nonSgmlChar(NonSgmlCharEvent *);
Packit 8a864e
  virtual void appinfo(AppinfoEvent *);
Packit 8a864e
  virtual void uselink(UselinkEvent *);
Packit 8a864e
  virtual void usemap(UsemapEvent *);
Packit 8a864e
  virtual void startDtd(StartDtdEvent *);
Packit 8a864e
  virtual void endDtd(EndDtdEvent *);
Packit 8a864e
  virtual void startLpd(StartLpdEvent *);
Packit 8a864e
  virtual void endLpd(EndLpdEvent *);
Packit 8a864e
  virtual void endProlog(EndPrologEvent *);
Packit 8a864e
  virtual void sgmlDecl(SgmlDeclEvent *);
Packit 8a864e
  virtual void commentDecl(CommentDeclEvent *);
Packit 8a864e
  virtual void sSep(SSepEvent *);
Packit 8a864e
  virtual void ignoredRs(IgnoredRsEvent *);
Packit 8a864e
  virtual void ignoredRe(IgnoredReEvent *);
Packit 8a864e
  virtual void reOrigin(ReOriginEvent *);
Packit 8a864e
  virtual void ignoredChars(IgnoredCharsEvent *);
Packit 8a864e
  virtual void markedSectionStart(MarkedSectionStartEvent *);
Packit 8a864e
  virtual void markedSectionEnd(MarkedSectionEndEvent *);
Packit 8a864e
  virtual void entityStart(EntityStartEvent *);
Packit 8a864e
  virtual void entityEnd(EntityEndEvent *);
Packit 8a864e
  virtual void notationDecl(NotationDeclEvent *);
Packit 8a864e
  virtual void entityDecl(EntityDeclEvent *);
Packit 8a864e
  virtual void elementDecl(ElementDeclEvent *);
Packit 8a864e
  virtual void attlistDecl(AttlistDeclEvent *);
Packit 8a864e
  virtual void linkAttlistDecl(LinkAttlistDeclEvent *);
Packit 8a864e
  virtual void attlistNotationDecl(AttlistNotationDeclEvent *);
Packit 8a864e
  virtual void linkDecl(LinkDeclEvent *);
Packit 8a864e
  virtual void idLinkDecl(IdLinkDeclEvent *);
Packit 8a864e
  virtual void shortrefDecl(ShortrefDeclEvent *);
Packit 8a864e
  virtual void ignoredMarkup(IgnoredMarkupEvent *);
Packit 8a864e
  virtual void entityDefaulted(EntityDefaultedEvent *);
Packit 8a864e
  virtual void inputClosed(InputSource *in);
Packit 8a864e
  virtual void inputOpened(InputSource *in);
Packit 8a864e
  virtual void sgmlDeclEntity(SgmlDeclEntityEvent *);
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Event::Event(Type type)
Packit 8a864e
: type_(type)
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Event::~Event()
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Event::Type Event::type() const
Packit 8a864e
{
Packit 8a864e
  return type_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Location &LocatedEvent::location() const
Packit 8a864e
{
Packit 8a864e
  return location_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Markup &MarkupEvent::markup() const
Packit 8a864e
{
Packit 8a864e
  return markup_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Message &MessageEvent::message() const
Packit 8a864e
{
Packit 8a864e
  return message_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ElementType *StartElementEvent::elementType() const
Packit 8a864e
{
Packit 8a864e
  return elementType_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const StringC &StartElementEvent::name() const
Packit 8a864e
{
Packit 8a864e
  return elementType_->name();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
void StartElementEvent::setIncluded()
Packit 8a864e
{
Packit 8a864e
  included_ = 1;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean StartElementEvent::included() const
Packit 8a864e
{
Packit 8a864e
  return included_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Markup *StartElementEvent::markupPtr() const
Packit 8a864e
{
Packit 8a864e
  return markup_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const AttributeList &StartElementEvent::attributes() const
Packit 8a864e
{
Packit 8a864e
  return *attributes_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean StartElementEvent::mustOmitEnd() const
Packit 8a864e
{
Packit 8a864e
  return ((elementType()->definition()->declaredContent()
Packit 8a864e
	   == ElementDefinition::empty)
Packit 8a864e
	  ||  attributes_->conref());
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ElementType *EndElementEvent::elementType() const
Packit 8a864e
{
Packit 8a864e
  return elementType_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const StringC &EndElementEvent::name() const
Packit 8a864e
{
Packit 8a864e
  return elementType_->name();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
void EndElementEvent::setIncluded()
Packit 8a864e
{
Packit 8a864e
  included_ = 1;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean EndElementEvent::included() const
Packit 8a864e
{
Packit 8a864e
  return included_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Markup *EndElementEvent::markupPtr() const
Packit 8a864e
{
Packit 8a864e
  return markup_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Char *DataEvent::data() const
Packit 8a864e
{
Packit 8a864e
  return p_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
size_t DataEvent::dataLength() const
Packit 8a864e
{
Packit 8a864e
  return length_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Char *PiEvent::data() const
Packit 8a864e
{
Packit 8a864e
  return data_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
size_t PiEvent::dataLength() const
Packit 8a864e
{
Packit 8a864e
  return dataLength_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<EntityOrigin> &
Packit 8a864e
ExternalEntityEvent::entityOrigin() const
Packit 8a864e
{
Packit 8a864e
  return origin_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Location &ExternalEntityEvent::location() const
Packit 8a864e
{
Packit 8a864e
  return origin_->parent();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ExternalDataEntity *ExternalDataEntityEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return dataEntity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const SubdocEntity *SubdocEntityEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return subdocEntity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Char NonSgmlCharEvent::character() const
Packit 8a864e
{
Packit 8a864e
  return c_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean AppinfoEvent::literal(const StringC *&p) const
Packit 8a864e
{
Packit 8a864e
  if (appinfoNone_)
Packit 8a864e
    return 0;
Packit 8a864e
  p = &appinfo_.string();
Packit 8a864e
  return 1;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Lpd> &UselinkEvent::lpd() const
Packit 8a864e
{
Packit 8a864e
  return lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const LinkSet *UselinkEvent::linkSet() const
Packit 8a864e
{
Packit 8a864e
  return linkSet_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean UselinkEvent::restore() const
Packit 8a864e
{
Packit 8a864e
  return restore_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ShortReferenceMap *UsemapEvent::map() const
Packit 8a864e
{
Packit 8a864e
  return map_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const StringC &StartSubsetEvent::name() const
Packit 8a864e
{
Packit 8a864e
  return name_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Entity> &StartSubsetEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return entity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean StartSubsetEvent::hasInternalSubset() const
Packit 8a864e
{
Packit 8a864e
  return hasInternalSubset_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean StartLpdEvent::active() const
Packit 8a864e
{
Packit 8a864e
  return active_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Dtd &EndDtdEvent::dtd() const
Packit 8a864e
{
Packit 8a864e
  return *dtd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Dtd> &EndDtdEvent::dtdPointer() const
Packit 8a864e
{
Packit 8a864e
  return dtd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Lpd &EndLpdEvent::lpd() const
Packit 8a864e
{
Packit 8a864e
  return *lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Lpd> &EndLpdEvent::lpdPointer() const
Packit 8a864e
{
Packit 8a864e
  return lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Dtd &EndPrologEvent::dtd() const
Packit 8a864e
{
Packit 8a864e
  return *dtd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Dtd> &EndPrologEvent::dtdPointer() const
Packit 8a864e
{
Packit 8a864e
  return dtd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<ComplexLpd> &EndPrologEvent::lpdPointer() const
Packit 8a864e
{
Packit 8a864e
  return lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<StringC> &EndPrologEvent::simpleLinkNames() const
Packit 8a864e
{
Packit 8a864e
  return simpleLinkNames_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<AttributeList> &EndPrologEvent::simpleLinkAttributes() const
Packit 8a864e
{
Packit 8a864e
  return simpleLinkAttributes_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Sd &SgmlDeclEvent::sd() const
Packit 8a864e
{
Packit 8a864e
  return *sd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Sd> &SgmlDeclEvent::sdPointer() const
Packit 8a864e
{
Packit 8a864e
  return sd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Sd> &SgmlDeclEvent::refSdPointer() const
Packit 8a864e
{
Packit 8a864e
  return refSd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Syntax &SgmlDeclEvent::prologSyntax() const
Packit 8a864e
{
Packit 8a864e
  return *prologSyntax_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Syntax> &SgmlDeclEvent::prologSyntaxPointer() const
Packit 8a864e
{
Packit 8a864e
  return prologSyntax_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Syntax &SgmlDeclEvent::instanceSyntax() const
Packit 8a864e
{
Packit 8a864e
  return *instanceSyntax_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Syntax> &SgmlDeclEvent::instanceSyntaxPointer() const
Packit 8a864e
{
Packit 8a864e
  return instanceSyntax_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Syntax> &SgmlDeclEvent::refSyntaxPointer() const
Packit 8a864e
{
Packit 8a864e
  return refSyntax_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const StringC &SgmlDeclEvent::implySystemId() const
Packit 8a864e
{
Packit 8a864e
  return implySystemId_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Char IgnoredRsEvent::rs() const
Packit 8a864e
{
Packit 8a864e
  return c_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Char IgnoredReEvent::re() const
Packit 8a864e
{
Packit 8a864e
  return c_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
unsigned long IgnoredReEvent::serial() const
Packit 8a864e
{
Packit 8a864e
  return serial_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Char ReOriginEvent::re() const
Packit 8a864e
{
Packit 8a864e
  return c_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
unsigned long ReOriginEvent::serial() const
Packit 8a864e
{
Packit 8a864e
  return serial_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
MarkedSectionEvent::Status MarkedSectionEvent::status() const
Packit 8a864e
{
Packit 8a864e
  return status_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Entity *EntityStartEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return origin_->entity();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<EntityOrigin> &
Packit 8a864e
EntityStartEvent::entityOrigin() const
Packit 8a864e
{
Packit 8a864e
  return origin_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Entity> &EntityDeclEvent::entityPointer() const
Packit 8a864e
{
Packit 8a864e
  return entity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Entity &EntityDeclEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return *entity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
Boolean EntityDeclEvent::ignored() const
Packit 8a864e
{
Packit 8a864e
  return ignored_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Notation &NotationDeclEvent::notation() const
Packit 8a864e
{
Packit 8a864e
  return *notation_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Notation> &NotationDeclEvent::notationPointer() const
Packit 8a864e
{
Packit 8a864e
  return notation_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<const ElementType *> &ElementDeclEvent::elements() const
Packit 8a864e
{
Packit 8a864e
  return elements_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<const ElementType *> &AttlistDeclEvent::elements() const
Packit 8a864e
{
Packit 8a864e
  return elements_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<const ElementType *> &LinkAttlistDeclEvent::elements() const
Packit 8a864e
{
Packit 8a864e
  return elements_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Lpd &LinkAttlistDeclEvent::lpd() const
Packit 8a864e
{
Packit 8a864e
  return *lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const LinkSet *LinkDeclEvent::linkSet() const
Packit 8a864e
{
Packit 8a864e
  return linkSet_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ComplexLpd &LinkDeclEvent::lpd() const
Packit 8a864e
{
Packit 8a864e
  return *lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ComplexLpd &IdLinkDeclEvent::lpd() const
Packit 8a864e
{
Packit 8a864e
  return *lpd_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Vector<ConstPtr<Notation> > &
Packit 8a864e
AttlistNotationDeclEvent::notations() const
Packit 8a864e
{
Packit 8a864e
  return notations_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ShortReferenceMap *ShortrefDeclEvent::map() const
Packit 8a864e
{
Packit 8a864e
  return map_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const Entity &EntityDefaultedEvent::entity() const
Packit 8a864e
{
Packit 8a864e
  return *entity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const ConstPtr<Entity> &EntityDefaultedEvent::entityPointer()
Packit 8a864e
     const
Packit 8a864e
{
Packit 8a864e
  return entity_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const PublicId &SgmlDeclEntityEvent::publicId() const
Packit 8a864e
{
Packit 8a864e
  return publicId_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
PublicId::TextClass SgmlDeclEntityEvent::entityType() const
Packit 8a864e
{
Packit 8a864e
  return entityType_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
const StringC &SgmlDeclEntityEvent::effectiveSystemId() const
Packit 8a864e
{
Packit 8a864e
  return effectiveSystemId_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#endif /* not Event_INCLUDED */