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

#ifndef __gen_nsIContentPrefService2_h__
#define __gen_nsIContentPrefService2_h__


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

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIVariant; /* forward declaration */

class nsIContentPrefObserver; /* forward declaration */

class nsIContentPrefCallback2; /* forward declaration */

class nsILoadContext; /* forward declaration */

class nsIContentPref; /* forward declaration */


/* starting interface:    nsIContentPrefService2 */
#define NS_ICONTENTPREFSERVICE2_IID_STR "bed98666-d995-470f-bebd-62476d318576"

#define NS_ICONTENTPREFSERVICE2_IID \
  {0xbed98666, 0xd995, 0x470f, \
    { 0xbe, 0xbd, 0x62, 0x47, 0x6d, 0x31, 0x85, 0x76 }}

class NS_NO_VTABLE nsIContentPrefService2 : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICONTENTPREFSERVICE2_IID)

  /* void getByName (in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
  NS_IMETHOD GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void getByDomainAndName (in AString domain, in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
  NS_IMETHOD GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void getBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
  NS_IMETHOD GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void getGlobal (in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
  NS_IMETHOD GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* nsIContentPref getCachedByDomainAndName (in AString domain, in AString name, in nsILoadContext context); */
  NS_IMETHOD GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) = 0;

  /* void getCachedBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] out unsigned long len, [array, size_is (len), retval] out nsIContentPref prefs); */
  NS_IMETHOD GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs) = 0;

  /* nsIContentPref getCachedGlobal (in AString name, in nsILoadContext context); */
  NS_IMETHOD GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) = 0;

  /* void set (in AString domain, in AString name, in nsIVariant value, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void setGlobal (in AString name, in nsIVariant value, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeByDomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeGlobal (in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeByDomain (in AString domain, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeBySubdomain (in AString domain, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeByName (in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeAllDomains (in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeAllDomainsSince (in unsigned long long since, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void removeAllGlobals (in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
  NS_IMETHOD RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback) = 0;

  /* void addObserverForName (in AString name, in nsIContentPrefObserver observer); */
  NS_IMETHOD AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer) = 0;

  /* void removeObserverForName (in AString name, in nsIContentPrefObserver observer); */
  NS_IMETHOD RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer) = 0;

  /* AString extractDomain (in AString str); */
  NS_IMETHOD ExtractDomain(const nsAString & str, nsAString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIContentPrefService2, NS_ICONTENTPREFSERVICE2_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICONTENTPREFSERVICE2 \
  NS_IMETHOD GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override; \
  NS_IMETHOD GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs) override; \
  NS_IMETHOD GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override; \
  NS_IMETHOD Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback) override; \
  NS_IMETHOD AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override; \
  NS_IMETHOD RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override; \
  NS_IMETHOD ExtractDomain(const nsAString & str, nsAString & _retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSICONTENTPREFSERVICE2 \
  NS_METHOD GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval); \
  NS_METHOD GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs); \
  NS_METHOD GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval); \
  NS_METHOD Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback); \
  NS_METHOD AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer); \
  NS_METHOD RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer); \
  NS_METHOD ExtractDomain(const nsAString & str, nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICONTENTPREFSERVICE2(_to) \
  NS_IMETHOD GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to GetByName(name, context, callback); } \
  NS_IMETHOD GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to GetByDomainAndName(domain, name, context, callback); } \
  NS_IMETHOD GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to GetBySubdomainAndName(domain, name, context, callback); } \
  NS_IMETHOD GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to GetGlobal(name, context, callback); } \
  NS_IMETHOD GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override { return _to GetCachedByDomainAndName(domain, name, context, _retval); } \
  NS_IMETHOD GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs) override { return _to GetCachedBySubdomainAndName(domain, name, context, len, prefs); } \
  NS_IMETHOD GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override { return _to GetCachedGlobal(name, context, _retval); } \
  NS_IMETHOD Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to Set(domain, name, value, context, callback); } \
  NS_IMETHOD SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to SetGlobal(name, value, context, callback); } \
  NS_IMETHOD RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveByDomainAndName(domain, name, context, callback); } \
  NS_IMETHOD RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveBySubdomainAndName(domain, name, context, callback); } \
  NS_IMETHOD RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveGlobal(name, context, callback); } \
  NS_IMETHOD RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveByDomain(domain, context, callback); } \
  NS_IMETHOD RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveBySubdomain(domain, context, callback); } \
  NS_IMETHOD RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveByName(name, context, callback); } \
  NS_IMETHOD RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveAllDomains(context, callback); } \
  NS_IMETHOD RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveAllDomainsSince(since, context, callback); } \
  NS_IMETHOD RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return _to RemoveAllGlobals(context, callback); } \
  NS_IMETHOD AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override { return _to AddObserverForName(name, observer); } \
  NS_IMETHOD RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override { return _to RemoveObserverForName(name, observer); } \
  NS_IMETHOD ExtractDomain(const nsAString & str, nsAString & _retval) override { return _to ExtractDomain(str, _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_NSICONTENTPREFSERVICE2(_to) \
  NS_IMETHOD GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetByName(name, context, callback); } \
  NS_IMETHOD GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetByDomainAndName(domain, name, context, callback); } \
  NS_IMETHOD GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBySubdomainAndName(domain, name, context, callback); } \
  NS_IMETHOD GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobal(name, context, callback); } \
  NS_IMETHOD GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCachedByDomainAndName(domain, name, context, _retval); } \
  NS_IMETHOD GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCachedBySubdomainAndName(domain, name, context, len, prefs); } \
  NS_IMETHOD GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCachedGlobal(name, context, _retval); } \
  NS_IMETHOD Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Set(domain, name, value, context, callback); } \
  NS_IMETHOD SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGlobal(name, value, context, callback); } \
  NS_IMETHOD RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveByDomainAndName(domain, name, context, callback); } \
  NS_IMETHOD RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveBySubdomainAndName(domain, name, context, callback); } \
  NS_IMETHOD RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveGlobal(name, context, callback); } \
  NS_IMETHOD RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveByDomain(domain, context, callback); } \
  NS_IMETHOD RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveBySubdomain(domain, context, callback); } \
  NS_IMETHOD RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveByName(name, context, callback); } \
  NS_IMETHOD RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllDomains(context, callback); } \
  NS_IMETHOD RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllDomainsSince(since, context, callback); } \
  NS_IMETHOD RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllGlobals(context, callback); } \
  NS_IMETHOD AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddObserverForName(name, observer); } \
  NS_IMETHOD RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveObserverForName(name, observer); } \
  NS_IMETHOD ExtractDomain(const nsAString & str, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ExtractDomain(str, _retval); } 

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

/* Header file */
class nsContentPrefService2 : public nsIContentPrefService2
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICONTENTPREFSERVICE2

  nsContentPrefService2();

private:
  ~nsContentPrefService2();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsContentPrefService2, nsIContentPrefService2)

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

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

/* void getByName (in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::GetByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getByDomainAndName (in AString domain, in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::GetByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::GetBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGlobal (in AString name, in nsILoadContext context, in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::GetGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIContentPref getCachedByDomainAndName (in AString domain, in AString name, in nsILoadContext context); */
NS_IMETHODIMP nsContentPrefService2::GetCachedByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCachedBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] out unsigned long len, [array, size_is (len), retval] out nsIContentPref prefs); */
NS_IMETHODIMP nsContentPrefService2::GetCachedBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, uint32_t *len, nsIContentPref * **prefs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIContentPref getCachedGlobal (in AString name, in nsILoadContext context); */
NS_IMETHODIMP nsContentPrefService2::GetCachedGlobal(const nsAString & name, nsILoadContext *context, nsIContentPref * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void set (in AString domain, in AString name, in nsIVariant value, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::Set(const nsAString & domain, const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setGlobal (in AString name, in nsIVariant value, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::SetGlobal(const nsAString & name, nsIVariant *value, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeByDomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveByDomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeBySubdomainAndName (in AString domain, in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveBySubdomainAndName(const nsAString & domain, const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeGlobal (in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveGlobal(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeByDomain (in AString domain, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveByDomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeBySubdomain (in AString domain, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveBySubdomain(const nsAString & domain, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeByName (in AString name, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveByName(const nsAString & name, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllDomains (in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveAllDomains(nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllDomainsSince (in unsigned long long since, in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveAllDomainsSince(uint64_t since, nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllGlobals (in nsILoadContext context, [optional] in nsIContentPrefCallback2 callback); */
NS_IMETHODIMP nsContentPrefService2::RemoveAllGlobals(nsILoadContext *context, nsIContentPrefCallback2 *callback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addObserverForName (in AString name, in nsIContentPrefObserver observer); */
NS_IMETHODIMP nsContentPrefService2::AddObserverForName(const nsAString & name, nsIContentPrefObserver *observer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeObserverForName (in AString name, in nsIContentPrefObserver observer); */
NS_IMETHODIMP nsContentPrefService2::RemoveObserverForName(const nsAString & name, nsIContentPrefObserver *observer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString extractDomain (in AString str); */
NS_IMETHODIMP nsContentPrefService2::ExtractDomain(const nsAString & str, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIContentPrefCallback2 */
#define NS_ICONTENTPREFCALLBACK2_IID_STR "1a12cf41-79e8-4d0f-9899-2f7b27c5d9a1"

#define NS_ICONTENTPREFCALLBACK2_IID \
  {0x1a12cf41, 0x79e8, 0x4d0f, \
    { 0x98, 0x99, 0x2f, 0x7b, 0x27, 0xc5, 0xd9, 0xa1 }}

class NS_NO_VTABLE nsIContentPrefCallback2 : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICONTENTPREFCALLBACK2_IID)

  /* void handleResult (in nsIContentPref pref); */
  NS_IMETHOD HandleResult(nsIContentPref *pref) = 0;

  /* void handleError (in nsresult error); */
  NS_IMETHOD HandleError(nsresult error) = 0;

  /* void handleCompletion (in unsigned short reason); */
  NS_IMETHOD HandleCompletion(uint16_t reason) = 0;

  enum {
    COMPLETE_OK = 0U,
    COMPLETE_ERROR = 1U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIContentPrefCallback2, NS_ICONTENTPREFCALLBACK2_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICONTENTPREFCALLBACK2 \
  NS_IMETHOD HandleResult(nsIContentPref *pref) override; \
  NS_IMETHOD HandleError(nsresult error) override; \
  NS_IMETHOD HandleCompletion(uint16_t reason) override; \

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSICONTENTPREFCALLBACK2 \
  NS_METHOD HandleResult(nsIContentPref *pref); \
  NS_METHOD HandleError(nsresult error); \
  NS_METHOD HandleCompletion(uint16_t reason); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICONTENTPREFCALLBACK2(_to) \
  NS_IMETHOD HandleResult(nsIContentPref *pref) override { return _to HandleResult(pref); } \
  NS_IMETHOD HandleError(nsresult error) override { return _to HandleError(error); } \
  NS_IMETHOD HandleCompletion(uint16_t reason) override { return _to HandleCompletion(reason); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICONTENTPREFCALLBACK2(_to) \
  NS_IMETHOD HandleResult(nsIContentPref *pref) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleResult(pref); } \
  NS_IMETHOD HandleError(nsresult error) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleError(error); } \
  NS_IMETHOD HandleCompletion(uint16_t reason) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleCompletion(reason); } \

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

/* Header file */
class nsContentPrefCallback2 : public nsIContentPrefCallback2
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICONTENTPREFCALLBACK2

  nsContentPrefCallback2();

private:
  ~nsContentPrefCallback2();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsContentPrefCallback2, nsIContentPrefCallback2)

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

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

/* void handleResult (in nsIContentPref pref); */
NS_IMETHODIMP nsContentPrefCallback2::HandleResult(nsIContentPref *pref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void handleError (in nsresult error); */
NS_IMETHODIMP nsContentPrefCallback2::HandleError(nsresult error)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void handleCompletion (in unsigned short reason); */
NS_IMETHODIMP nsContentPrefCallback2::HandleCompletion(uint16_t reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIContentPref */
#define NS_ICONTENTPREF_IID_STR "9f24948d-24b5-4b1b-b554-7dbd58c1d792"

#define NS_ICONTENTPREF_IID \
  {0x9f24948d, 0x24b5, 0x4b1b, \
    { 0xb5, 0x54, 0x7d, 0xbd, 0x58, 0xc1, 0xd7, 0x92 }}

class NS_NO_VTABLE nsIContentPref : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICONTENTPREF_IID)

  /* readonly attribute AString domain; */
  NS_IMETHOD GetDomain(nsAString & aDomain) = 0;

  /* readonly attribute AString name; */
  NS_IMETHOD GetName(nsAString & aName) = 0;

  /* readonly attribute nsIVariant value; */
  NS_IMETHOD GetValue(nsIVariant * *aValue) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIContentPref, NS_ICONTENTPREF_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICONTENTPREF \
  NS_IMETHOD GetDomain(nsAString & aDomain) override; \
  NS_IMETHOD GetName(nsAString & aName) override; \
  NS_IMETHOD GetValue(nsIVariant * *aValue) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSICONTENTPREF \
  NS_METHOD GetDomain(nsAString & aDomain); \
  NS_METHOD GetName(nsAString & aName); \
  NS_METHOD GetValue(nsIVariant * *aValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICONTENTPREF(_to) \
  NS_IMETHOD GetDomain(nsAString & aDomain) override { return _to GetDomain(aDomain); } \
  NS_IMETHOD GetName(nsAString & aName) override { return _to GetName(aName); } \
  NS_IMETHOD GetValue(nsIVariant * *aValue) override { return _to GetValue(aValue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICONTENTPREF(_to) \
  NS_IMETHOD GetDomain(nsAString & aDomain) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomain(aDomain); } \
  NS_IMETHOD GetName(nsAString & aName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetValue(nsIVariant * *aValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } 

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

/* Header file */
class nsContentPref : public nsIContentPref
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICONTENTPREF

  nsContentPref();

private:
  ~nsContentPref();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsContentPref, nsIContentPref)

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

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

/* readonly attribute AString domain; */
NS_IMETHODIMP nsContentPref::GetDomain(nsAString & aDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString name; */
NS_IMETHODIMP nsContentPref::GetName(nsAString & aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIVariant value; */
NS_IMETHODIMP nsContentPref::GetValue(nsIVariant * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIContentPrefService2_h__ */
