LCOV - code coverage report
Current view: top level - parser/htmlparser - nsIDTD.h (source / functions) Hit Total Coverage
Test: output.info Lines: 1 1 100.0 %
Date: 2017-07-14 16:53:18 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #ifndef nsIDTD_h___
       7             : #define nsIDTD_h___
       8             : 
       9             : /**
      10             :  * MODULE NOTES:
      11             :  * @update  gess 7/20/98
      12             :  *
      13             :  * This interface defines standard interface for DTD's. Note that this
      14             :  * isn't HTML specific. DTD's have several functions within the parser
      15             :  * system:
      16             :  *      1) To coordinate the consumption of an input stream via the
      17             :  *      parser
      18             :  *      2) To serve as proxy to represent the containment rules of the
      19             :  *      underlying document
      20             :  *      3) To offer autodetection services to the parser (mainly for doc
      21             :  *      conversion)
      22             :  * */
      23             : 
      24             : #include "nsISupports.h"
      25             : #include "nsString.h"
      26             : #include "nsITokenizer.h"
      27             : 
      28             : #define NS_IDTD_IID \
      29             : { 0x3de05873, 0xefa7, 0x410d, \
      30             :   { 0xa4, 0x61, 0x80, 0x33, 0xaf, 0xd9, 0xe3, 0x26 } }
      31             : 
      32             : enum eAutoDetectResult {
      33             :     eUnknownDetect,
      34             :     eValidDetect,
      35             :     ePrimaryDetect,
      36             :     eInvalidDetect
      37             : };
      38             : 
      39             : enum nsDTDMode {
      40             :     eDTDMode_unknown = 0,
      41             :     eDTDMode_quirks,        //pre 4.0 versions
      42             :     eDTDMode_almost_standards,
      43             :     eDTDMode_full_standards,
      44             :     eDTDMode_autodetect,
      45             :     eDTDMode_fragment
      46             : };
      47             : 
      48             : 
      49             : class nsIContentSink;
      50             : class CParserContext;
      51             : 
      52          23 : class nsIDTD : public nsISupports
      53             : {
      54             : public:
      55             : 
      56             :     NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDTD_IID)
      57             : 
      58             :     NS_IMETHOD WillBuildModel(const CParserContext& aParserContext,
      59             :                               nsITokenizer* aTokenizer,
      60             :                               nsIContentSink* aSink) = 0;
      61             : 
      62             :     /**
      63             :      * Called by the parser after the parsing process has concluded
      64             :      * @update  gess5/18/98
      65             :      * @param   anErrorCode - contains error code resulting from parse process
      66             :      * @return
      67             :      */
      68             :     NS_IMETHOD DidBuildModel(nsresult anErrorCode) = 0;
      69             : 
      70             :     /**
      71             :      * Called (possibly repeatedly) by the parser to parse tokens and construct
      72             :      * the document model via the sink provided to WillBuildModel.
      73             :      *
      74             :      * @param   aTokenizer - tokenizer providing the token stream to be parsed
      75             :      * @param   aCountLines - informs the DTD whether to count newlines
      76             :      *                        (not wanted, e.g., when handling document.write)
      77             :      * @param   aCharsetPtr - address of an nsCString containing the charset
      78             :      *                        that the DTD should use (pointer in case the DTD
      79             :      *                        opts to ignore this parameter)
      80             :      */
      81             :     NS_IMETHOD BuildModel(nsITokenizer* aTokenizer, nsIContentSink* aSink) = 0;
      82             : 
      83             :     /**
      84             :      * This method is called to determine whether or not a tag of one
      85             :      * type can contain a tag of another type.
      86             :      *
      87             :      * @update  gess 3/25/98
      88             :      * @param   aParent -- int tag of parent container
      89             :      * @param   aChild -- int tag of child container
      90             :      * @return true if parent can contain child
      91             :      */
      92             :     NS_IMETHOD_(bool) CanContain(int32_t aParent,int32_t aChild) const = 0;
      93             : 
      94             :     /**
      95             :      * This method gets called to determine whether a given
      96             :      * tag is itself a container
      97             :      *
      98             :      * @update  gess 3/25/98
      99             :      * @param   aTag -- tag to test for containership
     100             :      * @return  true if given tag can contain other tags
     101             :      */
     102             :     NS_IMETHOD_(bool) IsContainer(int32_t aTag) const = 0;
     103             : 
     104             :     /**
     105             :      * Use this id you want to stop the building content model
     106             :      * --------------[ Sets DTD to STOP mode ]----------------
     107             :      * It's recommended to use this method in accordance with
     108             :      * the parser's terminate() method.
     109             :      *
     110             :      * @update  harishd 07/22/99
     111             :      * @param
     112             :      * @return
     113             :      */
     114             :     NS_IMETHOD_(void) Terminate() = 0;
     115             : 
     116             :     NS_IMETHOD_(int32_t) GetType() = 0;
     117             : 
     118             :     /**
     119             :      * Call this method after calling WillBuildModel to determine what mode the
     120             :      * DTD actually is using, as it may differ from aParserContext.mDTDMode.
     121             :      */
     122             :     NS_IMETHOD_(nsDTDMode) GetMode() const = 0;
     123             : };
     124             : 
     125             : NS_DEFINE_STATIC_IID_ACCESSOR(nsIDTD, NS_IDTD_IID)
     126             : 
     127             : #define NS_DECL_NSIDTD \
     128             :     NS_IMETHOD WillBuildModel(  const CParserContext& aParserContext, nsITokenizer* aTokenizer, nsIContentSink* aSink) override;\
     129             :     NS_IMETHOD DidBuildModel(nsresult anErrorCode) override;\
     130             :     NS_IMETHOD BuildModel(nsITokenizer* aTokenizer, nsIContentSink* aSink) override;\
     131             :     NS_IMETHOD_(bool) CanContain(int32_t aParent,int32_t aChild) const override;\
     132             :     NS_IMETHOD_(bool) IsContainer(int32_t aTag) const override;\
     133             :     NS_IMETHOD_(void)  Terminate() override;\
     134             :     NS_IMETHOD_(int32_t) GetType() override;\
     135             :     NS_IMETHOD_(nsDTDMode) GetMode() const override;
     136             : #endif /* nsIDTD_h___ */

Generated by: LCOV version 1.13