/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#include "nsISupports.idl"

/**  
 * nsITraceRefcnt is an interface between XPCOM Glue and XPCOM.
 *
 * @status DEPRECATED  Replaced by the NS_Log* functions.
 */

[uuid(273dc92f-0fe6-4545-96a9-21be77828039)]
interface nsITraceRefcnt : nsISupports
{
  void logAddRef(in voidPtr aPtr,
                 in nsrefcnt aNewRefcnt,
                 in string aTypeName,
                 in unsigned long aInstanceSize);

  void logRelease(in voidPtr aPtr,
                  in nsrefcnt aNewRefcnt,
                  in string aTypeName);

  void logCtor(in voidPtr aPtr,
               in string aTypeName,
               in unsigned long aInstanceSize);

  void logDtor(in voidPtr aPtr,
               in string aTypeName,
               in unsigned long aInstanceSize);


  void logAddCOMPtr(in voidPtr aPtr, in nsISupports aObject);

  void logReleaseCOMPtr(in voidPtr aPtr, in nsISupports aObject);
};
