Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : /*
8 : * nsStubDocumentObserver is an implementation of the nsIDocumentObserver
9 : * interface (except for the methods on nsISupports) that is intended to be
10 : * used as a base class within the content/layout library. All methods do
11 : * nothing.
12 : */
13 :
14 : #ifndef nsStubDocumentObserver_h_
15 : #define nsStubDocumentObserver_h_
16 :
17 : #include "nsIDocumentObserver.h"
18 :
19 : /**
20 : * There are two advantages to inheriting from nsStubDocumentObserver
21 : * rather than directly from nsIDocumentObserver:
22 : * 1. smaller compiled code size (since there's no need for the code
23 : * for the empty virtual function implementations for every
24 : * nsIDocumentObserver implementation)
25 : * 2. the performance of document's loop over observers benefits from
26 : * the fact that more of the functions called are the same (which
27 : * can reduce instruction cache misses and perhaps improve branch
28 : * prediction)
29 : */
30 76 : class nsStubDocumentObserver : public nsIDocumentObserver {
31 : public:
32 : NS_DECL_NSIDOCUMENTOBSERVER
33 : };
34 :
35 : #endif /* !defined(nsStubDocumentObserver_h_) */
|