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

#ifndef __gen_flockIError_h__
#define __gen_flockIError_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

/* starting interface:    flockIError */
#define FLOCKIERROR_IID_STR "ed73b363-d491-4842-9594-a7b347c155b4"

#define FLOCKIERROR_IID \
  {0xed73b363, 0xd491, 0x4842, \
    { 0x95, 0x94, 0xa7, 0xb3, 0x47, 0xc1, 0x55, 0xb4 }}

class NS_NO_VTABLE NS_SCRIPTABLE flockIError : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIERROR_IID)

  /**
   * Unified Flock error code, ie. one of the const error codes defined in this
   * interface.
   * @see errorString
   */
  /* attribute long errorCode; */
  NS_SCRIPTABLE NS_IMETHOD GetErrorCode(PRInt32 *aErrorCode) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetErrorCode(PRInt32 aErrorCode) = 0;

  /**
   * Description of the unified Flock error code.  This is a localized string,
   * for display to the user.
   * @see errorCode
   */
  /* readonly attribute AString errorString; */
  NS_SCRIPTABLE NS_IMETHOD GetErrorString(nsAString & aErrorString) = 0;

  /**
   * Error code used by the particular web service, if the service provides one.
   * @see serviceErrorString
   * @see serviceName
   */
  /* attribute AString serviceErrorCode; */
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorCode(nsAString & aServiceErrorCode) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorCode(const nsAString & aServiceErrorCode) = 0;

  /**
   * Description of the service-specific error code, if the service provides
   * one.  May be null otherwise.
   * @see serviceErrorCode
   */
  /* attribute AString serviceErrorString; */
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorString(nsAString & aServiceErrorString) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorString(const nsAString & aServiceErrorString) = 0;

  /**
   * (Optional) Used to insert the service name (eg: Facebook) into the error
   * message.
   */
  /* attribute AString serviceName; */
  NS_SCRIPTABLE NS_IMETHOD GetServiceName(nsAString & aServiceName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetServiceName(const nsAString & aServiceName) = 0;

  enum { HTTP_CONNECTION_LOST = 0 };

  enum { HTTP_BAD_REQUEST = 400 };

  enum { HTTP_UNAUTHORIZED = 401 };

  enum { HTTP_NOTFOUND = 404 };

  enum { HTTP_INTERNAL_SERVER_ERROR = 500 };

  enum { HTTP_SERVER_UNAVAILABLE = 503 };

  enum { HTTP_GATEWAY_TIMEOUT = 504 };

  enum { PHOTOSERVICE_UNAVAILABLE = 1001 };

  enum { PHOTOSERVICE_LOGIN_FAILED = 1002 };

  enum { PHOTOSERVICE_INSUFFICIENT_PERMISSIONS = 1003 };

  enum { PHOTOSERVICE_INVALID_USER = 1004 };

  enum { PHOTOSERVICE_INVALID_SEARCH_QUERY = 1005 };

  enum { PHOTOSERVICE_INVALID_SEARCH_TERMS = 1006 };

  enum { PHOTOSERVICE_INVALID_UPLOAD_FILE = 1007 };

  enum { PHOTOSERVICE_UPLOAD_ERROR = 1008 };

  enum { PHOTOSERVICE_INVALID_ALBUM = 1009 };

  enum { PHOTOSERVICE_PRIVATE_ALBUM = 1010 };

  enum { PHOTOSERVICE_INVALID_RESPONSE = 1011 };

  enum { PHOTOSERVICE_USER_NOT_LOGGED_IN = 1012 };

  enum { PHOTOSERVICE_PHOTOS_IN_ALBUM_LIMIT_REACHED = 1013 };

  enum { PHOTOSERVICE_ALBUM_IS_OVER_SIZE_LIMIT = 1014 };

  enum { PHOTOSERVICE_NO_FILE_UPLOADED = 1015 };

  enum { PHOTOSERVICE_DUPLICATE_FILENAME = 1016 };

  enum { PHOTOSERVICE_BANDWIDTH_REACHED = 1017 };

  enum { PHOTOSERVICE_UNSUPPORTED_IMAGE_FORMAT = 1018 };

  enum { PHOTOSERVICE_INVALID_ALBUMNAME = 1019 };

  enum { PHOTOSERVICE_DUPLICATE_ALBUMNAME = 1020 };

  enum { PHOTOSERVICE_SESSION_KEY_EXPIRED = 1021 };

  enum { PHOTOSERVICE_FILE_IS_OVER_SIZE_LIMIT = 1023 };

  enum { PHOTOSERVICE_FILE_EMPTY = 1024 };

  enum { PHOTOSERVICE_INVALID_API_KEY = 1025 };

  enum { PHOTOSERVICE_INVALID_QUERY = 1026 };

  enum { PHOTOSERVICE_EMPTY_ALBUMNAME = 1027 };

  enum { PHOTOSERVICE_REQUEST_LIMIT_REACHED = 1028 };

  enum { PHOTOSERVICE_FRIENDS_ONLY = 1029 };

  enum { PHOTOSERVICE_UNKNOWN_ERROR = 1999 };

  enum { BLOG_UNAVAILABLE = 2001 };

  enum { BLOG_INVALID_AUTH = 2002 };

  enum { BLOG_INVALID_HTML = 2003 };

  enum { BLOG_CAPTCHA_REQUIRED = 2004 };

  enum { BLOG_NOT_VERIFIED = 2005 };

  enum { BLOG_NOT_ALLOWED = 2006 };

  enum { BLOG_LOGIN_REQUIRED = 2010 };

  enum { BLOG_UNKNOWN_ERROR = 2999 };

  enum { FAVS_UNAVAILABLE = 3001 };

  enum { FAVS_INVALID_AUTH = 3002 };

  enum { FAVS_UNKNOWN_ERROR = 3999 };

  enum { OPML_INVALID_XML = 5001 };

  enum { OPML_NO_DATA = 5002 };

  enum { OPML_TOO_DEEP = 5003 };

  enum { OPML_NO_FEEDS = 5004 };

  enum { OPML_BAD_FEED_URL = 5005 };

  enum { WEBMAIL_API_INVALID_XML = 6001 };

  enum { WEBMAIL_API_CANNOT_PARSE = 6002 };

  enum { WEBMAIL_UNKNOWN_ERROR = 6099 };

  enum { GOOGLE_LOGIN_ERROR = 7001 };

  enum { GOOGLE_UNKNOWN_ERROR = 7099 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIError, FLOCKIERROR_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIERROR \
  NS_SCRIPTABLE NS_IMETHOD GetErrorCode(PRInt32 *aErrorCode); \
  NS_SCRIPTABLE NS_IMETHOD SetErrorCode(PRInt32 aErrorCode); \
  NS_SCRIPTABLE NS_IMETHOD GetErrorString(nsAString & aErrorString); \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorCode(nsAString & aServiceErrorCode); \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorCode(const nsAString & aServiceErrorCode); \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorString(nsAString & aServiceErrorString); \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorString(const nsAString & aServiceErrorString); \
  NS_SCRIPTABLE NS_IMETHOD GetServiceName(nsAString & aServiceName); \
  NS_SCRIPTABLE NS_IMETHOD SetServiceName(const nsAString & aServiceName); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIERROR(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetErrorCode(PRInt32 *aErrorCode) { return _to GetErrorCode(aErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD SetErrorCode(PRInt32 aErrorCode) { return _to SetErrorCode(aErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetErrorString(nsAString & aErrorString) { return _to GetErrorString(aErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorCode(nsAString & aServiceErrorCode) { return _to GetServiceErrorCode(aServiceErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorCode(const nsAString & aServiceErrorCode) { return _to SetServiceErrorCode(aServiceErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorString(nsAString & aServiceErrorString) { return _to GetServiceErrorString(aServiceErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorString(const nsAString & aServiceErrorString) { return _to SetServiceErrorString(aServiceErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceName(nsAString & aServiceName) { return _to GetServiceName(aServiceName); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceName(const nsAString & aServiceName) { return _to SetServiceName(aServiceName); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIERROR(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetErrorCode(PRInt32 *aErrorCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorCode(aErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD SetErrorCode(PRInt32 aErrorCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetErrorCode(aErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetErrorString(nsAString & aErrorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorString(aErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorCode(nsAString & aServiceErrorCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServiceErrorCode(aServiceErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorCode(const nsAString & aServiceErrorCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServiceErrorCode(aServiceErrorCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceErrorString(nsAString & aServiceErrorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServiceErrorString(aServiceErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceErrorString(const nsAString & aServiceErrorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServiceErrorString(aServiceErrorString); } \
  NS_SCRIPTABLE NS_IMETHOD GetServiceName(nsAString & aServiceName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServiceName(aServiceName); } \
  NS_SCRIPTABLE NS_IMETHOD SetServiceName(const nsAString & aServiceName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServiceName(aServiceName); } \

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

/* Header file */
class _MYCLASS_ : public flockIError
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIERROR

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute long errorCode; */
NS_IMETHODIMP _MYCLASS_::GetErrorCode(PRInt32 *aErrorCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetErrorCode(PRInt32 aErrorCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString errorString; */
NS_IMETHODIMP _MYCLASS_::GetErrorString(nsAString & aErrorString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString serviceErrorCode; */
NS_IMETHODIMP _MYCLASS_::GetServiceErrorCode(nsAString & aServiceErrorCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetServiceErrorCode(const nsAString & aServiceErrorCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString serviceErrorString; */
NS_IMETHODIMP _MYCLASS_::GetServiceErrorString(nsAString & aServiceErrorString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetServiceErrorString(const nsAString & aServiceErrorString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString serviceName; */
NS_IMETHODIMP _MYCLASS_::GetServiceName(nsAString & aServiceName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetServiceName(const nsAString & aServiceName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIError_h__ */
