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

          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             : // IWYU pragma: private, include "nsISupports.h"
       7             : 
       8             : #ifndef nsISupportsBase_h__
       9             : #define nsISupportsBase_h__
      10             : 
      11             : #ifndef nscore_h___
      12             : #include "nscore.h"
      13             : #endif
      14             : 
      15             : #ifndef nsID_h__
      16             : #include "nsID.h"
      17             : #endif
      18             : 
      19             : 
      20             : /*@{*/
      21             : /**
      22             :  * IID for the nsISupports interface
      23             :  * {00000000-0000-0000-c000-000000000046}
      24             :  *
      25             :  * To maintain binary compatibility with COM's IUnknown, we define the IID
      26             :  * of nsISupports to be the same as that of COM's IUnknown.
      27             :  */
      28             : #define NS_ISUPPORTS_IID                                                      \
      29             :   { 0x00000000, 0x0000, 0x0000,                                               \
      30             :     {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }
      31             : 
      32             : /**
      33             :  * Basic component object model interface. Objects which implement
      34             :  * this interface support runtime interface discovery (QueryInterface)
      35             :  * and a reference counted memory model (AddRef/Release). This is
      36             :  * modelled after the win32 IUnknown API.
      37             :  */
      38      198251 : class NS_NO_VTABLE nsISupports
      39             : {
      40             : public:
      41             : 
      42             :   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISUPPORTS_IID)
      43             : 
      44             :   /**
      45             :    * @name Methods
      46             :    */
      47             : 
      48             :   //@{
      49             :   /**
      50             :    * A run time mechanism for interface discovery.
      51             :    * @param aIID [in] A requested interface IID
      52             :    * @param aInstancePtr [out] A pointer to an interface pointer to
      53             :    * receive the result.
      54             :    * @return <b>NS_OK</b> if the interface is supported by the associated
      55             :    * instance, <b>NS_NOINTERFACE</b> if it is not.
      56             :    *
      57             :    * aInstancePtr must not be null.
      58             :    */
      59             :   NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) = 0;
      60             :   /**
      61             :    * Increases the reference count for this interface.
      62             :    * The associated instance will not be deleted unless
      63             :    * the reference count is returned to zero.
      64             :    *
      65             :    * @return The resulting reference count.
      66             :    */
      67             :   NS_IMETHOD_(MozExternalRefCountType) AddRef(void) = 0;
      68             : 
      69             :   /**
      70             :    * Decreases the reference count for this interface.
      71             :    * Generally, if the reference count returns to zero,
      72             :    * the associated instance is deleted.
      73             :    *
      74             :    * @return The resulting reference count.
      75             :    */
      76             :   NS_IMETHOD_(MozExternalRefCountType) Release(void) = 0;
      77             : 
      78             :   //@}
      79             : };
      80             : 
      81             : NS_DEFINE_STATIC_IID_ACCESSOR(nsISupports, NS_ISUPPORTS_IID)
      82             : 
      83             : /*@}*/
      84             : 
      85             : #endif

Generated by: LCOV version 1.13