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

#ifndef __gen_flockIWebService_h__
#define __gen_flockIWebService_h__


#ifndef __gen_flockIListener_h__
#include "flockIListener.h"
#endif

#ifndef __gen_nsIDOMHTMLDocument_h__
#include "nsIDOMHTMLDocument.h"
#endif

#ifndef __gen_nsIDOMHTMLFormElement_h__
#include "nsIDOMHTMLFormElement.h"
#endif

#ifndef __gen_nsILoginInfo_h__
#include "nsILoginInfo.h"
#endif

#ifndef __gen_nsIPropertyBag_h__
#include "nsIPropertyBag.h"
#endif

#ifndef __gen_nsISimpleEnumerator_h__
#include "nsISimpleEnumerator.h"
#endif

#ifndef __gen_nsIStringEnumerator_h__
#include "nsIStringEnumerator.h"
#endif

#ifndef __gen_nsIStringBundle_h__
#include "nsIStringBundle.h"
#endif

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

#ifndef __gen_nsIVariant_h__
#include "nsIVariant.h"
#endif

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


/* starting interface:    flockIWebService */
#define FLOCKIWEBSERVICE_IID_STR "12344207-7532-1234-bf00-eb362f9c7a05"

#define FLOCKIWEBSERVICE_IID \
  {0x12344207, 0x7532, 0x1234, \
    { 0xbf, 0x00, 0xeb, 0x36, 0x2f, 0x9c, 0x7a, 0x05 }}

/**
 * This is the base web service interface, and should be implemented by all web
 * service components.
 */
class NS_NO_VTABLE NS_SCRIPTABLE flockIWebService : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIWEBSERVICE_IID)

  /** Descriptive title for the service, as recognized by end user */
  /* readonly attribute AString title; */
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsAString & aTitle) = 0;

  /** Internal name for the service, all lowercase, no punctuation */
  /* readonly attribute AString shortName; */
  NS_SCRIPTABLE NS_IMETHOD GetShortName(nsAString & aShortName) = 0;

  /** Standard favicon URL (chrome, or web) for this service */
  /* readonly attribute AString icon; */
  NS_SCRIPTABLE NS_IMETHOD GetIcon(nsAString & aIcon) = 0;

  /** Url to which to take the user for this service */
  /* readonly attribute AString url; */
  NS_SCRIPTABLE NS_IMETHOD GetUrl(nsAString & aUrl) = 0;

  /** Expose the contractId for matching with Identities */
  /* readonly attribute AString contractId; */
  NS_SCRIPTABLE NS_IMETHOD GetContractId(nsAString & aContractId) = 0;

  /** RDF node id for this service */
  /* readonly attribute AString urn; */
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) = 0;

  /**
   * A service may provide a localized resource. Use this method to gain access
   * to this resource.
   */
  /* nsIStringBundle getStringBundle (); */
  NS_SCRIPTABLE NS_IMETHOD GetStringBundle(nsIStringBundle **_retval) = 0;

  /**
   * Determines if the service should be hidden from view.  Services are not
   * disabled, this just prevents them from being promoted in the UI.
   *
   * @return true if service should be hidden.
   */
  /* boolean isHidden (); */
  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIWebService, FLOCKIWEBSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIWEBSERVICE \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_SCRIPTABLE NS_IMETHOD GetShortName(nsAString & aShortName); \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(nsAString & aIcon); \
  NS_SCRIPTABLE NS_IMETHOD GetUrl(nsAString & aUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetContractId(nsAString & aContractId); \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn); \
  NS_SCRIPTABLE NS_IMETHOD GetStringBundle(nsIStringBundle **_retval); \
  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIWEBSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD GetShortName(nsAString & aShortName) { return _to GetShortName(aShortName); } \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(nsAString & aIcon) { return _to GetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrl(nsAString & aUrl) { return _to GetUrl(aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetContractId(nsAString & aContractId) { return _to GetContractId(aContractId); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) { return _to GetUrn(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringBundle(nsIStringBundle **_retval) { return _to GetStringBundle(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) { return _to IsHidden(_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_FLOCKIWEBSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetTitle(nsAString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_SCRIPTABLE NS_IMETHOD GetShortName(nsAString & aShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShortName(aShortName); } \
  NS_SCRIPTABLE NS_IMETHOD GetIcon(nsAString & aIcon) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcon(aIcon); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrl(nsAString & aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrl(aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetContractId(nsAString & aContractId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContractId(aContractId); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrn(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringBundle(nsIStringBundle **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringBundle(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsHidden(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIWebService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIWEBSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIWebService)

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

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

/* readonly attribute AString title; */
NS_IMETHODIMP _MYCLASS_::GetTitle(nsAString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString shortName; */
NS_IMETHODIMP _MYCLASS_::GetShortName(nsAString & aShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString icon; */
NS_IMETHODIMP _MYCLASS_::GetIcon(nsAString & aIcon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString url; */
NS_IMETHODIMP _MYCLASS_::GetUrl(nsAString & aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString contractId; */
NS_IMETHODIMP _MYCLASS_::GetContractId(nsAString & aContractId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString urn; */
NS_IMETHODIMP _MYCLASS_::GetUrn(nsAString & aUrn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIStringBundle getStringBundle (); */
NS_IMETHODIMP _MYCLASS_::GetStringBundle(nsIStringBundle **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isHidden (); */
NS_IMETHODIMP _MYCLASS_::IsHidden(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockILoginInfo */
#define FLOCKILOGININFO_IID_STR "b2f050fd-deba-4625-a362-45d5ce817145"

#define FLOCKILOGININFO_IID \
  {0xb2f050fd, 0xdeba, 0x4625, \
    { 0xa3, 0x62, 0x45, 0xd5, 0xce, 0x81, 0x71, 0x45 }}

/**
 * Interface for tracking origins of passwords.  Right now we only track
 * signup vs. not.
 */
class NS_NO_VTABLE NS_SCRIPTABLE flockILoginInfo : public nsILoginInfo {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKILOGININFO_IID)

  /* attribute AString formType; */
  NS_SCRIPTABLE NS_IMETHOD GetFormType(nsAString & aFormType) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFormType(const nsAString & aFormType) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockILoginInfo, FLOCKILOGININFO_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKILOGININFO \
  NS_SCRIPTABLE NS_IMETHOD GetFormType(nsAString & aFormType); \
  NS_SCRIPTABLE NS_IMETHOD SetFormType(const nsAString & aFormType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKILOGININFO(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetFormType(nsAString & aFormType) { return _to GetFormType(aFormType); } \
  NS_SCRIPTABLE NS_IMETHOD SetFormType(const nsAString & aFormType) { return _to SetFormType(aFormType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKILOGININFO(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetFormType(nsAString & aFormType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFormType(aFormType); } \
  NS_SCRIPTABLE NS_IMETHOD SetFormType(const nsAString & aFormType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFormType(aFormType); } 

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

/* Header file */
class _MYCLASS_ : public flockILoginInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKILOGININFO

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockILoginInfo)

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

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

/* attribute AString formType; */
NS_IMETHODIMP _MYCLASS_::GetFormType(nsAString & aFormType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFormType(const nsAString & aFormType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockILoginWebService */
#define FLOCKILOGINWEBSERVICE_IID_STR "f5da9456-92d3-44d6-9374-50ce4b4882b0"

#define FLOCKILOGINWEBSERVICE_IID \
  {0xf5da9456, 0x92d3, 0x44d6, \
    { 0x93, 0x74, 0x50, 0xce, 0x4b, 0x48, 0x82, 0xb0 }}

/**
 * Represents a third-party web service which supports user accounts.  Some of
 * the methods here are for basic account maintenance (add, get, remove
 * accounts, etc.), and some are for analyzing web page documents to determine
 * which accounts may be logged in, and which are logged out, etc.
 *
 * More documentation here:
 * http://developer.flock.com/wiki/Accounts_Management
 *
 * @see flockIWebServiceManager
 */
class NS_NO_VTABLE NS_SCRIPTABLE flockILoginWebService : public flockIWebService {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKILOGINWEBSERVICE_IID)

  /** Comma-separated list of web domains owned by the service */
  /* readonly attribute AString domains; */
  NS_SCRIPTABLE NS_IMETHOD GetDomains(nsAString & aDomains) = 0;

  /** Whether Flock must know the account password for this service */
  /* readonly attribute boolean needPassword; */
  NS_SCRIPTABLE NS_IMETHOD GetNeedPassword(PRBool *aNeedPassword) = 0;

  /** URL to redirect the user when we want him to log in */
  /* readonly attribute AString loginURL; */
  NS_SCRIPTABLE NS_IMETHOD GetLoginURL(nsAString & aLoginURL) = 0;

  /** Localized tooltip to be shown in the Accounts&Services Sidebar */
  /* readonly attribute AString tooltip; */
  NS_SCRIPTABLE NS_IMETHOD GetTooltip(nsAString & aTooltip) = 0;

  /**
   * A service may support multiple accounts per user.  Use this method to tell
   * Flock about an existing user account with this service.
   *
   * PRECONDITIONS:
   *  - The account must already exist with the service provider.  This
   *    function does *not* actually register a new account with the service
   *    provider.
   *  - The login/password for the account must already be registered with
   *    the flockAccountUtils service and must be retrievable with a call to
   *    {flockIAccountUtils}.getPassword(<service.URN>:<accountID>).
   *
   * @param aAccountId (in) The unique identifier used by this service to refer
   *        to this account.  This is sometimes equivalent to the login string,
   *        but not always.
   * @param aIsTransient (in) Boolean indicating whether this account should be
   *        created as a "transient" account.  (Transient accounts will exist
   *        only for this browser session.)
   * @param aFlockListener (in) An optional flockIListener that can respond to
   *        success or failure of the add operation.
   * @return An account object which implements flockIWebServiceAccount.
   *
   * @see flockIAccountUtils#getPassword
   */
  /* flockIWebServiceAccount addAccount (in AString aAccountId, in boolean aIsTransient, in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD AddAccount(const nsAString & aAccountId, PRBool aIsTransient, flockIListener *aFlockListener, flockIWebServiceAccount **_retval) = 0;

  /**
   * Determine whether the specified document represents a successful login.
   * No distinction is made between the first login landing page and subsequent
   * pages.  In other words, this function should return TRUE as long as the
   * aDocument represents a page in a logged-in state.
   *
   * This function may assume that .ownsDocument() has already been called on
   * the document in question, and has returned TRUE.
   *
   * @return TRUE iff aDocument reveals that the use is logged in to this
   *         web service.
   * @see ownsDocument
   */
  /* boolean docRepresentsSuccessfulLogin (in nsIDOMHTMLDocument aDocument); */
  NS_SCRIPTABLE NS_IMETHOD DocRepresentsSuccessfulLogin(nsIDOMHTMLDocument *aDocument, PRBool *_retval) = 0;

  /**
   * Retrieve the account ID represented by aDocument.  The account in question
   * may or may not be known by Flock.
   *
   * This function may assume that .docRepresentsSuccessfulLogin() has already
   * been called on the same document, and has returned TRUE.
   *
   * @param aDocument (in) an HTML document object
   * @return The account ID as a string, or else null if an account ID can not
   *         be determined.
   *
   * @see docRepresentsSuccessfulLogin
   */
  /* AString getAccountIDFromDocument (in nsIDOMHTMLDocument aDocument); */
  NS_SCRIPTABLE NS_IMETHOD GetAccountIDFromDocument(nsIDOMHTMLDocument *aDocument, nsAString & _retval) = 0;

  /**
   * Retrieve a urn enumeration of all the known accounts for this service.
   *
   * @return nsIStringEnumerator of RDF node ids of accounts.
   */
  /* nsIStringEnumerator getAccountUrns (); */
  NS_SCRIPTABLE NS_IMETHOD GetAccountUrns(nsIStringEnumerator **_retval) = 0;

  /**
   * Retrieve a flockIWebServiceAccount object for the account with the
   * specified RDF node id.
   *
   * @param aUrn (in) the RDF node id for the account.
   * @return An account object which implements flockIWebServiceAccount.
   */
  /* flockIWebServiceAccount getAccount (in AString aUrn); */
  NS_SCRIPTABLE NS_IMETHOD GetAccount(const nsAString & aUrn, flockIWebServiceAccount **_retval) = 0;

  /**
   * Retrieve a urn of an account for the first matching authenticated account.
   *
   * @return The Urn of an account.
   *         Returns null if no account exist or no account is authenticated;
   *         returns the first matching account if several accounts are
   *         authenticated.
   */
  /* AString getAuthenticatedAccount (); */
  NS_SCRIPTABLE NS_IMETHOD GetAuthenticatedAccount(nsAString & _retval) = 0;

  /**
   * Retrieve the login credentials from an HTML form.
   *
   * This function may assume that .ownsLoginForm() has already been called on
   * the form in question, and has returned TRUE.
   *
   * @param aForm (in) the HTML form to check
   * @return A flockILoginInfo object with the login/password/formType, or else 
   *         null if the login/password/formType can not be determined.
   *
   * @see ownsLoginForm
   */
  /* flockILoginInfo getCredentialsFromForm (in nsIDOMHTMLFormElement aForm); */
  NS_SCRIPTABLE NS_IMETHOD GetCredentialsFromForm(nsIDOMHTMLFormElement *aForm, flockILoginInfo **_retval) = 0;

  /**
   * @return A string derived from the current state of session cookies for the
   *         service.  This is used to determine whether the user is still
   *         logged in to the same account, in cases where we can't tell that
   *         simply by looking at the document.
   */
  /* AString getSessionValue (); */
  NS_SCRIPTABLE NS_IMETHOD GetSessionValue(nsAString & _retval) = 0;

  /**
   * Log out from all accounts (remove cookies and deauth API if needed).
   */
  /* void logout (); */
  NS_SCRIPTABLE NS_IMETHOD Logout(void) = 0;

  /**
   * Indicates whether the specified document is one that the service 'owns' or
   * cares about.
   *
   * Note that if the service has provided a value for the 'domains' attribute,
   * then this function will only get called for documents whose URL falls
   * within the specified domains... so doing a domain check again in this
   * function would be redundant.
   *
   * @param aDocument (in) an HTML document to check
   * @return TRUE iff the service cares about this document/URL, else FALSE
   *
   * @see domains
   */
  /* boolean ownsDocument (in nsIDOMHTMLDocument aDocument); */
  NS_SCRIPTABLE NS_IMETHOD OwnsDocument(nsIDOMHTMLDocument *aDocument, PRBool *_retval) = 0;

  /**
   * Indicated whether the specified HTML form is one that the service 'owns'
   * or cares about.  This could be because it's a login, sign-up or
   * change-password form.
   *
   * @param aForm (in) an HTML form to check
   * @return TRUE iff this is a login form for this service, else FALSE
   */
  /* boolean ownsLoginForm (in nsIDOMHTMLFormElement aForm); */
  NS_SCRIPTABLE NS_IMETHOD OwnsLoginForm(nsIDOMHTMLFormElement *aForm, PRBool *_retval) = 0;

  /**
   * Use this method to have Flock forget the account details for an existing
   * user account.
   *
   * @param aUrn (in) The RDF node id for the account to be forgotten.
   *
   * @see flockIWebServiceAccount#remove
   */
  /* void removeAccount (in AString aUrn); */
  NS_SCRIPTABLE NS_IMETHOD RemoveAccount(const nsAString & aUrn) = 0;

  /**
   * Gives the service an opportunity to update the status of its account(s).
   * In particular, this should detect whether account(s) are logged in or
   * logged out, and update the isAuthenticated RDF property of those accounts
   * as appropriate.
   *
   * This function may assume that .ownsDocument() has already been called for
   * the document in question, and has returned TRUE.
   *
   * @param aDocument (in) an HTML document to check
   * @param aAccount (in) the XPCOM account which has already been
   *        detected as logged in on this page.  If not provided, then no
   *        account was detected as being logged in for aDocument.
   * @param aAuthListener (in) A flockIListener, optional, which may respond to
   *        success or failure conditions.
   *
   * @see ownsDocument
   */
  /* void updateAccountStatusFromDocument (in nsIDOMHTMLDocument aDocument, in flockIWebServiceAccount aAccount, in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD UpdateAccountStatusFromDocument(nsIDOMHTMLDocument *aDocument, flockIWebServiceAccount *aAccount, flockIListener *aFlockListener) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockILoginWebService, FLOCKILOGINWEBSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKILOGINWEBSERVICE \
  NS_SCRIPTABLE NS_IMETHOD GetDomains(nsAString & aDomains); \
  NS_SCRIPTABLE NS_IMETHOD GetNeedPassword(PRBool *aNeedPassword); \
  NS_SCRIPTABLE NS_IMETHOD GetLoginURL(nsAString & aLoginURL); \
  NS_SCRIPTABLE NS_IMETHOD GetTooltip(nsAString & aTooltip); \
  NS_SCRIPTABLE NS_IMETHOD AddAccount(const nsAString & aAccountId, PRBool aIsTransient, flockIListener *aFlockListener, flockIWebServiceAccount **_retval); \
  NS_SCRIPTABLE NS_IMETHOD DocRepresentsSuccessfulLogin(nsIDOMHTMLDocument *aDocument, PRBool *_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetAccountIDFromDocument(nsIDOMHTMLDocument *aDocument, nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD GetAccountUrns(nsIStringEnumerator **_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetAccount(const nsAString & aUrn, flockIWebServiceAccount **_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetAuthenticatedAccount(nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD GetCredentialsFromForm(nsIDOMHTMLFormElement *aForm, flockILoginInfo **_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetSessionValue(nsAString & _retval); \
  NS_SCRIPTABLE NS_IMETHOD Logout(void); \
  NS_SCRIPTABLE NS_IMETHOD OwnsDocument(nsIDOMHTMLDocument *aDocument, PRBool *_retval); \
  NS_SCRIPTABLE NS_IMETHOD OwnsLoginForm(nsIDOMHTMLFormElement *aForm, PRBool *_retval); \
  NS_SCRIPTABLE NS_IMETHOD RemoveAccount(const nsAString & aUrn); \
  NS_SCRIPTABLE NS_IMETHOD UpdateAccountStatusFromDocument(nsIDOMHTMLDocument *aDocument, flockIWebServiceAccount *aAccount, flockIListener *aFlockListener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKILOGINWEBSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetDomains(nsAString & aDomains) { return _to GetDomains(aDomains); } \
  NS_SCRIPTABLE NS_IMETHOD GetNeedPassword(PRBool *aNeedPassword) { return _to GetNeedPassword(aNeedPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginURL(nsAString & aLoginURL) { return _to GetLoginURL(aLoginURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetTooltip(nsAString & aTooltip) { return _to GetTooltip(aTooltip); } \
  NS_SCRIPTABLE NS_IMETHOD AddAccount(const nsAString & aAccountId, PRBool aIsTransient, flockIListener *aFlockListener, flockIWebServiceAccount **_retval) { return _to AddAccount(aAccountId, aIsTransient, aFlockListener, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD DocRepresentsSuccessfulLogin(nsIDOMHTMLDocument *aDocument, PRBool *_retval) { return _to DocRepresentsSuccessfulLogin(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountIDFromDocument(nsIDOMHTMLDocument *aDocument, nsAString & _retval) { return _to GetAccountIDFromDocument(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountUrns(nsIStringEnumerator **_retval) { return _to GetAccountUrns(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccount(const nsAString & aUrn, flockIWebServiceAccount **_retval) { return _to GetAccount(aUrn, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthenticatedAccount(nsAString & _retval) { return _to GetAuthenticatedAccount(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetCredentialsFromForm(nsIDOMHTMLFormElement *aForm, flockILoginInfo **_retval) { return _to GetCredentialsFromForm(aForm, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSessionValue(nsAString & _retval) { return _to GetSessionValue(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD Logout(void) { return _to Logout(); } \
  NS_SCRIPTABLE NS_IMETHOD OwnsDocument(nsIDOMHTMLDocument *aDocument, PRBool *_retval) { return _to OwnsDocument(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD OwnsLoginForm(nsIDOMHTMLFormElement *aForm, PRBool *_retval) { return _to OwnsLoginForm(aForm, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAccount(const nsAString & aUrn) { return _to RemoveAccount(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD UpdateAccountStatusFromDocument(nsIDOMHTMLDocument *aDocument, flockIWebServiceAccount *aAccount, flockIListener *aFlockListener) { return _to UpdateAccountStatusFromDocument(aDocument, aAccount, aFlockListener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKILOGINWEBSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetDomains(nsAString & aDomains) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomains(aDomains); } \
  NS_SCRIPTABLE NS_IMETHOD GetNeedPassword(PRBool *aNeedPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedPassword(aNeedPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginURL(nsAString & aLoginURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoginURL(aLoginURL); } \
  NS_SCRIPTABLE NS_IMETHOD GetTooltip(nsAString & aTooltip) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTooltip(aTooltip); } \
  NS_SCRIPTABLE NS_IMETHOD AddAccount(const nsAString & aAccountId, PRBool aIsTransient, flockIListener *aFlockListener, flockIWebServiceAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAccount(aAccountId, aIsTransient, aFlockListener, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD DocRepresentsSuccessfulLogin(nsIDOMHTMLDocument *aDocument, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DocRepresentsSuccessfulLogin(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountIDFromDocument(nsIDOMHTMLDocument *aDocument, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountIDFromDocument(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountUrns(nsIStringEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountUrns(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccount(const nsAString & aUrn, flockIWebServiceAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccount(aUrn, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthenticatedAccount(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthenticatedAccount(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetCredentialsFromForm(nsIDOMHTMLFormElement *aForm, flockILoginInfo **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCredentialsFromForm(aForm, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSessionValue(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionValue(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD Logout(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Logout(); } \
  NS_SCRIPTABLE NS_IMETHOD OwnsDocument(nsIDOMHTMLDocument *aDocument, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->OwnsDocument(aDocument, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD OwnsLoginForm(nsIDOMHTMLFormElement *aForm, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->OwnsLoginForm(aForm, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAccount(const nsAString & aUrn) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAccount(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD UpdateAccountStatusFromDocument(nsIDOMHTMLDocument *aDocument, flockIWebServiceAccount *aAccount, flockIListener *aFlockListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateAccountStatusFromDocument(aDocument, aAccount, aFlockListener); } 

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

/* Header file */
class _MYCLASS_ : public flockILoginWebService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKILOGINWEBSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockILoginWebService)

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

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

/* readonly attribute AString domains; */
NS_IMETHODIMP _MYCLASS_::GetDomains(nsAString & aDomains)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean needPassword; */
NS_IMETHODIMP _MYCLASS_::GetNeedPassword(PRBool *aNeedPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString loginURL; */
NS_IMETHODIMP _MYCLASS_::GetLoginURL(nsAString & aLoginURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString tooltip; */
NS_IMETHODIMP _MYCLASS_::GetTooltip(nsAString & aTooltip)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIWebServiceAccount addAccount (in AString aAccountId, in boolean aIsTransient, in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::AddAccount(const nsAString & aAccountId, PRBool aIsTransient, flockIListener *aFlockListener, flockIWebServiceAccount **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean docRepresentsSuccessfulLogin (in nsIDOMHTMLDocument aDocument); */
NS_IMETHODIMP _MYCLASS_::DocRepresentsSuccessfulLogin(nsIDOMHTMLDocument *aDocument, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getAccountIDFromDocument (in nsIDOMHTMLDocument aDocument); */
NS_IMETHODIMP _MYCLASS_::GetAccountIDFromDocument(nsIDOMHTMLDocument *aDocument, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIStringEnumerator getAccountUrns (); */
NS_IMETHODIMP _MYCLASS_::GetAccountUrns(nsIStringEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIWebServiceAccount getAccount (in AString aUrn); */
NS_IMETHODIMP _MYCLASS_::GetAccount(const nsAString & aUrn, flockIWebServiceAccount **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getAuthenticatedAccount (); */
NS_IMETHODIMP _MYCLASS_::GetAuthenticatedAccount(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockILoginInfo getCredentialsFromForm (in nsIDOMHTMLFormElement aForm); */
NS_IMETHODIMP _MYCLASS_::GetCredentialsFromForm(nsIDOMHTMLFormElement *aForm, flockILoginInfo **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getSessionValue (); */
NS_IMETHODIMP _MYCLASS_::GetSessionValue(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void logout (); */
NS_IMETHODIMP _MYCLASS_::Logout()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean ownsDocument (in nsIDOMHTMLDocument aDocument); */
NS_IMETHODIMP _MYCLASS_::OwnsDocument(nsIDOMHTMLDocument *aDocument, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean ownsLoginForm (in nsIDOMHTMLFormElement aForm); */
NS_IMETHODIMP _MYCLASS_::OwnsLoginForm(nsIDOMHTMLFormElement *aForm, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAccount (in AString aUrn); */
NS_IMETHODIMP _MYCLASS_::RemoveAccount(const nsAString & aUrn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void updateAccountStatusFromDocument (in nsIDOMHTMLDocument aDocument, in flockIWebServiceAccount aAccount, in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::UpdateAccountStatusFromDocument(nsIDOMHTMLDocument *aDocument, flockIWebServiceAccount *aAccount, flockIListener *aFlockListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIWebServiceAccount */
#define FLOCKIWEBSERVICEACCOUNT_IID_STR "42755a67-dddf-43b1-a053-e4243294a035"

#define FLOCKIWEBSERVICEACCOUNT_IID \
  {0x42755a67, 0xdddf, 0x43b1, \
    { 0xa0, 0x53, 0xe4, 0x24, 0x32, 0x94, 0xa0, 0x35 }}

class NS_NO_VTABLE NS_SCRIPTABLE flockIWebServiceAccount : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIWEBSERVICEACCOUNT_IID)

  /**
 * This is the account interface associated with flockILoginWebService.  It is
 * the base web service account interface, and should be implemented by all web
 * service accounts.
 *
 * More documentation here:
 * http://developer.flock.com/wiki/Accounts_Management
 *
 * @see flockILoginWebService
 */
/** RDF node id for this account */
  /* readonly attribute AString urn; */
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) = 0;

  /**
   * @return a handle to the flockILoginWebService associated with this account.
   */
  /* flockILoginWebService getService (); */
  NS_SCRIPTABLE NS_IMETHOD GetService(flockILoginWebService **_retval) = 0;

  /**
   * Log in to the account, using stored username and password.
   *
   * @param aFlockListener (in) A flockIListener, optional, which may respond
   *        to success or failure conditions.
   */
  /* void login (in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD Login(flockIListener *aFlockListener) = 0;

  /**
   * If the account is currently logged in, this will mark it as logged out and
   * delete any relevant cookies for that login session.
   *
   * @param aFlockListener (in) A flockIListener, optional, which may respond
   *        to success or failure conditions.
   */
  /* void logout (in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD Logout(flockIListener *aFlockListener) = 0;

  /**
   * Accounts are usually initially created in a "transient" state, meaning
   * that they will only last for the duration of the current browser session.
   * This method makes the account non-transient.
   */
  /* void keep (); */
  NS_SCRIPTABLE NS_IMETHOD Keep(void) = 0;

  /**
   * @return TRUE if the account is logged in; else FALSE.
   */
  /* boolean isAuthenticated (); */
  NS_SCRIPTABLE NS_IMETHOD IsAuthenticated(PRBool *_retval) = 0;

  /**
   * Gets value of account parameter aParamName customParams list.
   *
   * @param aParamName (in) parameter to return.  Candidates:
   *        accountId
   *        avatar
   *        name
   *        statusMessage
   *        lastUpdateDate
   *        nextRefresh
   *        accountMessages 
   *        authToken
   * @return nsIVariant value that corresponds to aParam for this account
   */
  /* nsIVariant getParam (in AString aParamName); */
  NS_SCRIPTABLE NS_IMETHOD GetParam(const nsAString & aParamName, nsIVariant **_retval) = 0;

  /**
   * Gets value of a default param of account.
   *
   * @param aParamName (in) parameter to return.  Candidates:
   *        accountId
   *        avatar
   *        name
   *        statusMessage
   *        lastUpdateDate
   *        nextRefresh
   *        accountMessages 
   *        authToken
   */
  /* void setParam (in AString aParamName, in nsIVariant aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetParam(const nsAString & aParamName, nsIVariant *aValue) = 0;

  /**
   * Gets value of account parameter aParamName customParams list.
   *
   * @param aParamName (in) parameter to return
   * @return nsIVariant value that corresponds to aParam for this account
   */
  /* nsIVariant getCustomParam (in AString aParamName); */
  NS_SCRIPTABLE NS_IMETHOD GetCustomParam(const nsAString & aParamName, nsIVariant **_retval) = 0;

  /**
   * Gets all custom account parameters.
   *
   * @return nsIPropertyBag of all custom params for this account
   */
  /* nsIPropertyBag getAllCustomParams (); */
  NS_SCRIPTABLE NS_IMETHOD GetAllCustomParams(nsIPropertyBag **_retval) = 0;

  /**
   * Sets value of account parameter aParamName.
   *
   * @param aParamName (in) parameter to set
   * @param aValue (in) new value for parameter
   */
  /* void setCustomParam (in AString aParamName, in nsIVariant aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetCustomParam(const nsAString & aParamName, nsIVariant *aValue) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIWebServiceAccount, FLOCKIWEBSERVICEACCOUNT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIWEBSERVICEACCOUNT \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn); \
  NS_SCRIPTABLE NS_IMETHOD GetService(flockILoginWebService **_retval); \
  NS_SCRIPTABLE NS_IMETHOD Login(flockIListener *aFlockListener); \
  NS_SCRIPTABLE NS_IMETHOD Logout(flockIListener *aFlockListener); \
  NS_SCRIPTABLE NS_IMETHOD Keep(void); \
  NS_SCRIPTABLE NS_IMETHOD IsAuthenticated(PRBool *_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetParam(const nsAString & aParamName, nsIVariant **_retval); \
  NS_SCRIPTABLE NS_IMETHOD SetParam(const nsAString & aParamName, nsIVariant *aValue); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomParam(const nsAString & aParamName, nsIVariant **_retval); \
  NS_SCRIPTABLE NS_IMETHOD GetAllCustomParams(nsIPropertyBag **_retval); \
  NS_SCRIPTABLE NS_IMETHOD SetCustomParam(const nsAString & aParamName, nsIVariant *aValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIWEBSERVICEACCOUNT(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) { return _to GetUrn(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD GetService(flockILoginWebService **_retval) { return _to GetService(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD Login(flockIListener *aFlockListener) { return _to Login(aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD Logout(flockIListener *aFlockListener) { return _to Logout(aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD Keep(void) { return _to Keep(); } \
  NS_SCRIPTABLE NS_IMETHOD IsAuthenticated(PRBool *_retval) { return _to IsAuthenticated(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetParam(const nsAString & aParamName, nsIVariant **_retval) { return _to GetParam(aParamName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetParam(const nsAString & aParamName, nsIVariant *aValue) { return _to SetParam(aParamName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomParam(const nsAString & aParamName, nsIVariant **_retval) { return _to GetCustomParam(aParamName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllCustomParams(nsIPropertyBag **_retval) { return _to GetAllCustomParams(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomParam(const nsAString & aParamName, nsIVariant *aValue) { return _to SetCustomParam(aParamName, 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_FLOCKIWEBSERVICEACCOUNT(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetUrn(nsAString & aUrn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrn(aUrn); } \
  NS_SCRIPTABLE NS_IMETHOD GetService(flockILoginWebService **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetService(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD Login(flockIListener *aFlockListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->Login(aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD Logout(flockIListener *aFlockListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->Logout(aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD Keep(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Keep(); } \
  NS_SCRIPTABLE NS_IMETHOD IsAuthenticated(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsAuthenticated(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetParam(const nsAString & aParamName, nsIVariant **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParam(aParamName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetParam(const nsAString & aParamName, nsIVariant *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParam(aParamName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomParam(const nsAString & aParamName, nsIVariant **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomParam(aParamName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllCustomParams(nsIPropertyBag **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllCustomParams(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomParam(const nsAString & aParamName, nsIVariant *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCustomParam(aParamName, aValue); } 

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

/* Header file */
class _MYCLASS_ : public flockIWebServiceAccount
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIWEBSERVICEACCOUNT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIWebServiceAccount)

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

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

/* readonly attribute AString urn; */
NS_IMETHODIMP _MYCLASS_::GetUrn(nsAString & aUrn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockILoginWebService getService (); */
NS_IMETHODIMP _MYCLASS_::GetService(flockILoginWebService **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void login (in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::Login(flockIListener *aFlockListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void logout (in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::Logout(flockIListener *aFlockListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void keep (); */
NS_IMETHODIMP _MYCLASS_::Keep()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isAuthenticated (); */
NS_IMETHODIMP _MYCLASS_::IsAuthenticated(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant getParam (in AString aParamName); */
NS_IMETHODIMP _MYCLASS_::GetParam(const nsAString & aParamName, nsIVariant **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setParam (in AString aParamName, in nsIVariant aValue); */
NS_IMETHODIMP _MYCLASS_::SetParam(const nsAString & aParamName, nsIVariant *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant getCustomParam (in AString aParamName); */
NS_IMETHODIMP _MYCLASS_::GetCustomParam(const nsAString & aParamName, nsIVariant **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPropertyBag getAllCustomParams (); */
NS_IMETHODIMP _MYCLASS_::GetAllCustomParams(nsIPropertyBag **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCustomParam (in AString aParamName, in nsIVariant aValue); */
NS_IMETHODIMP _MYCLASS_::SetCustomParam(const nsAString & aParamName, nsIVariant *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIWebService_h__ */
