/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsICompartmentInfo.idl
 */

#ifndef __gen_nsICompartmentInfo_h__
#define __gen_nsICompartmentInfo_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIArray_h__
#include "nsIArray.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsICompartment */
#define NS_ICOMPARTMENT_IID_STR "13dd4c09-ff11-4943-8dc2-d96eb69c963b"

#define NS_ICOMPARTMENT_IID \
  {0x13dd4c09, 0xff11, 0x4943, \
    { 0x8d, 0xc2, 0xd9, 0x6e, 0xb6, 0x9c, 0x96, 0x3b }}

class NS_NO_VTABLE nsICompartment : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICOMPARTMENT_IID)

  /* readonly attribute AString compartmentName; */
  NS_IMETHOD GetCompartmentName(nsAString & aCompartmentName) = 0;

  /* readonly attribute unsigned long long time; */
  NS_IMETHOD GetTime(uint64_t *aTime) = 0;

  /* readonly attribute AString addonId; */
  NS_IMETHOD GetAddonId(nsAString & aAddonId) = 0;

  /* readonly attribute unsigned long long CPOWTime; */
  NS_IMETHOD GetCPOWTime(uint64_t *aCPOWTime) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsICompartment, NS_ICOMPARTMENT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICOMPARTMENT \
  NS_IMETHOD GetCompartmentName(nsAString & aCompartmentName) override; \
  NS_IMETHOD GetTime(uint64_t *aTime) override; \
  NS_IMETHOD GetAddonId(nsAString & aAddonId) override; \
  NS_IMETHOD GetCPOWTime(uint64_t *aCPOWTime) override; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICOMPARTMENT(_to) \
  NS_IMETHOD GetCompartmentName(nsAString & aCompartmentName) override { return _to GetCompartmentName(aCompartmentName); } \
  NS_IMETHOD GetTime(uint64_t *aTime) override { return _to GetTime(aTime); } \
  NS_IMETHOD GetAddonId(nsAString & aAddonId) override { return _to GetAddonId(aAddonId); } \
  NS_IMETHOD GetCPOWTime(uint64_t *aCPOWTime) override { return _to GetCPOWTime(aCPOWTime); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICOMPARTMENT(_to) \
  NS_IMETHOD GetCompartmentName(nsAString & aCompartmentName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCompartmentName(aCompartmentName); } \
  NS_IMETHOD GetTime(uint64_t *aTime) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTime(aTime); } \
  NS_IMETHOD GetAddonId(nsAString & aAddonId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddonId(aAddonId); } \
  NS_IMETHOD GetCPOWTime(uint64_t *aCPOWTime) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPOWTime(aCPOWTime); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsCompartment : public nsICompartment
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICOMPARTMENT

  nsCompartment();

private:
  ~nsCompartment();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsCompartment, nsICompartment)

nsCompartment::nsCompartment()
{
  /* member initializers and constructor code */
}

nsCompartment::~nsCompartment()
{
  /* destructor code */
}

/* readonly attribute AString compartmentName; */
NS_IMETHODIMP nsCompartment::GetCompartmentName(nsAString & aCompartmentName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long long time; */
NS_IMETHODIMP nsCompartment::GetTime(uint64_t *aTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString addonId; */
NS_IMETHODIMP nsCompartment::GetAddonId(nsAString & aAddonId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long long CPOWTime; */
NS_IMETHODIMP nsCompartment::GetCPOWTime(uint64_t *aCPOWTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


/* starting interface:    nsICompartmentInfo */
#define NS_ICOMPARTMENTINFO_IID_STR "5795113a-39a1-4087-ba09-98b7d07d025a"

#define NS_ICOMPARTMENTINFO_IID \
  {0x5795113a, 0x39a1, 0x4087, \
    { 0xba, 0x09, 0x98, 0xb7, 0xd0, 0x7d, 0x02, 0x5a }}

class NS_NO_VTABLE nsICompartmentInfo : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICOMPARTMENTINFO_IID)

  /* nsIArray getCompartments (); */
  NS_IMETHOD GetCompartments(nsIArray * *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsICompartmentInfo, NS_ICOMPARTMENTINFO_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICOMPARTMENTINFO \
  NS_IMETHOD GetCompartments(nsIArray * *_retval) override; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICOMPARTMENTINFO(_to) \
  NS_IMETHOD GetCompartments(nsIArray * *_retval) override { return _to GetCompartments(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICOMPARTMENTINFO(_to) \
  NS_IMETHOD GetCompartments(nsIArray * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCompartments(_retval); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsCompartmentInfo : public nsICompartmentInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICOMPARTMENTINFO

  nsCompartmentInfo();

private:
  ~nsCompartmentInfo();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsCompartmentInfo, nsICompartmentInfo)

nsCompartmentInfo::nsCompartmentInfo()
{
  /* member initializers and constructor code */
}

nsCompartmentInfo::~nsCompartmentInfo()
{
  /* destructor code */
}

/* nsIArray getCompartments (); */
NS_IMETHODIMP nsCompartmentInfo::GetCompartments(nsIArray * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#define NS_COMPARTMENT_INFO_CID \
{ 0x2d3c2f2d, 0x698d, 0x471d, \
{ 0xba, 0x3e, 0x14, 0x44, 0xdd, 0x52, 0x1e, 0x29 } }

#endif /* __gen_nsICompartmentInfo_h__ */
