source: trunk/third/mozilla/htmlparser/public/nsParserDataListener.h @ 21250

Revision 21250, 4.0 KB checked in by rbasch, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21249, which included commits to RCS files with non-trunk default branches.
RevLine 
[21249]1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is mozilla.org code.
16 *
17 * The Initial Developer of the Original Code is mozilla.org.
18 * Portions created by the Initial Developer are Copyright (C) 2004
19 * the Initial Developer. All Rights Reserved.
20 *
21 * Contributor(s):
22 *   Johnny Stenback <jst@mozilla.org>
23 *
24 * Alternatively, the contents of this file may be used under the terms of
25 * either the GNU General Public License Version 2 or later (the "GPL"), or
26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 * in which case the provisions of the GPL or the LGPL are applicable instead
28 * of those above. If you wish to allow use of your version of this file only
29 * under the terms of either the GPL or the LGPL, and not to allow others to
30 * use your version of this file under the terms of the MPL, indicate your
31 * decision by deleting the provisions above and replace them with the notice
32 * and other provisions required by the GPL or the LGPL. If you do not delete
33 * the provisions above, a recipient may use your version of this file under
34 * the terms of any one of the MPL, the GPL or the LGPL.
35 *
36 * ***** END LICENSE BLOCK ***** */
37
38#ifndef __nsParserDataListener_h__
39#define __nsParserDataListener_h__
40
41/*
42 * Include this header if you're implementing a parser data
43 * listener. To make a component a parser data listener you'll need to
44 * make your component implement the interface
45 * nsIUnicharStreamListener. That interface has three methods (one +
46 * two inherited ones, not counting what's defined in
47 * nsISupports). The methods are:
48 *
49 *  void onStartRequest(in nsIRequest aRequest,
50 *                      in nsISupports aContext);
51 *  void onUnicharDataAvailable(in nsIRequest aRequest,
52 *                              in nsISupports aContext, in AString aData);
53 *  void onStopRequest(in nsIRequest aRequest,
54 *                     in nsISupports aContext,
55 *                     in nsresult aStatusCode);
56 *
57 * All those methods are called for every network request that ends up
58 * feeding data to the parser. The method are called in the order
59 * shown above, first one call to onStartRequest(), then one call to
60 * onUnicharDataAvailable() per chunk of data received and converted
61 * to UTF-16, and finally one call to onStopRequest().
62 *
63 * The nsIRequest passed into these methods will be the same object
64 * for all these calls for a given network request. If the request
65 * pointer is used to uniquely identify an ongoing request, the
66 * pointer should be QueryInterface()'d to nsISupports to ensure that
67 * the pointer used is the identity pointer to the object.
68 *
69 * The context argument passed to these methods will be the document
70 * (nsIDOMDocument) parsed from the stream, or null when not
71 * available.
72 *
73 * Any errors returned from any of these calls will end up canceling
74 * the stream, and the data that is passed to the call in question
75 * will *not* be seen by the parser. So unless you intend to interrupt
76 * a request, *make sure* that you return NS_OK from these methods!
77 */
78
79#include "nsIUnicharStreamListener.h"
80
81/*
82 * To register a component to be a parser data listener the
83 * component's contract id should be registered with the category
84 * manager (nsICategoryManager), with the category
85 * PARSER_DATA_LISTENER_CATEGORY, defined here.
86 *
87 * @status FROZEN
88 */
89#define PARSER_DATA_LISTENER_CATEGORY "Parser data listener"
90
91#endif // __nsParserDataListener_h__
Note: See TracBrowser for help on using the repository browser.