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

#ifndef __gen_flockIBlogService_h__
#define __gen_flockIBlogService_h__


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

#ifndef __gen_nsIRDFDataSource_h__
#include "nsIRDFDataSource.h"
#endif

#ifndef __gen_nsIRDFNode_h__
#include "nsIRDFNode.h"
#endif

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

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

#ifndef __gen_nsIFileURL_h__
#include "nsIFileURL.h"
#endif

#ifndef __gen_flockIBlogAPI_h__
#include "flockIBlogAPI.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:    flockIDetectListener */
#define FLOCKIDETECTLISTENER_IID_STR "8425e79d-6b5a-4ee8-af87-5fc5791261a3"

#define FLOCKIDETECTLISTENER_IID \
  {0x8425e79d, 0x6b5a, 0x4ee8, \
    { 0xaf, 0x87, 0x5f, 0xc5, 0x79, 0x12, 0x61, 0xa3 }}

class NS_NO_VTABLE flockIDetectListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIDETECTLISTENER_IID)

  /* void onResult (in flockIBlogAccount api); */
  NS_IMETHOD OnResult(flockIBlogAccount *api) = 0;

  /* void onError (in AString errorMsg); */
  NS_IMETHOD OnError(const nsAString & errorMsg) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIDETECTLISTENER \
  NS_IMETHOD OnResult(flockIBlogAccount *api); \
  NS_IMETHOD OnError(const nsAString & errorMsg); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIDETECTLISTENER(_to) \
  NS_IMETHOD OnResult(flockIBlogAccount *api) { return _to OnResult(api); } \
  NS_IMETHOD OnError(const nsAString & errorMsg) { return _to OnError(errorMsg); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIDETECTLISTENER(_to) \
  NS_IMETHOD OnResult(flockIBlogAccount *api) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnResult(api); } \
  NS_IMETHOD OnError(const nsAString & errorMsg) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(errorMsg); } 

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

/* Header file */
class _MYCLASS_ : public flockIDetectListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIDETECTLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void onResult (in flockIBlogAccount api); */
NS_IMETHODIMP _MYCLASS_::OnResult(flockIBlogAccount *api)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in AString errorMsg); */
NS_IMETHODIMP _MYCLASS_::OnError(const nsAString & errorMsg)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogService */
#define FLOCKIBLOGSERVICE_IID_STR "094a6d1a-357a-466f-a854-484ed125ea03"

#define FLOCKIBLOGSERVICE_IID \
  {0x094a6d1a, 0x357a, 0x466f, \
    { 0xa8, 0x54, 0x48, 0x4e, 0xd1, 0x25, 0xea, 0x03 }}

class NS_NO_VTABLE flockIBlogService : public nsIRDFDataSource {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGSERVICE_IID)

  /* readonly attribute nsISimpleEnumerator services; */
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) = 0;

  /* void addRecent (in AString aName, in AString aFilepath); */
  NS_IMETHOD AddRecent(const nsAString & aName, const nsAString & aFilepath) = 0;

  /* boolean recentIsEmpty (); */
  NS_IMETHOD RecentIsEmpty(PRBool *_retval) = 0;

  /* void registerAPI (in flockIBlogAPI aAPI, in ACString aShortname); */
  NS_IMETHOD RegisterAPI(flockIBlogAPI *aAPI, const nsACString & aShortname) = 0;

  /* flockIBlogAPI getAPIFromShortname (in ACString aShortname); */
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIBlogAPI **_retval) = 0;

  /* AString getShortnameFromAPI (in flockIBlogAPI aAPI); */
  NS_IMETHOD GetShortnameFromAPI(flockIBlogAPI *aAPI, nsAString & _retval) = 0;

  /* void getCandidatesAPI (in flockIDetectListener aListener, in AString aUrl); */
  NS_IMETHOD GetCandidatesAPI(flockIDetectListener *aListener, const nsAString & aUrl) = 0;

  /* long accountCount (); */
  NS_IMETHOD AccountCount(PRInt32 *_retval) = 0;

  /* AString getAccountList (); */
  NS_IMETHOD GetAccountList(nsAString & _retval) = 0;

  /* flockIBlogAccount getAccount (in AString aBlogID); */
  NS_IMETHOD GetAccount(const nsAString & aBlogID, flockIBlogAccount **_retval) = 0;

  /* flockIBlogAPI getBlogAPI (in AString aBlogID); */
  NS_IMETHOD GetBlogAPI(const nsAString & aBlogID, flockIBlogAPI **_retval) = 0;

  /* void setBlogAPI (in AString aBlogID, in flockIBlogAPI aBlogAPI); */
  NS_IMETHOD SetBlogAPI(const nsAString & aBlogID, flockIBlogAPI *aBlogAPI) = 0;

  /* boolean accountExists (in AString aTitle); */
  NS_IMETHOD AccountExists(const nsAString & aTitle, PRBool *_retval) = 0;

  /* void saveAccount (in AString aTitle, in flockIBlogAccount aBlogAccount); */
  NS_IMETHOD SaveAccount(const nsAString & aTitle, flockIBlogAccount *aBlogAccount) = 0;

  /* void deleteAccount (in AString aBlogID); */
  NS_IMETHOD DeleteAccount(const nsAString & aBlogID) = 0;

  /* void addCategory (in AString aBlogID, in AString aCategoryId, in AString aCategoryName); */
  NS_IMETHOD AddCategory(const nsAString & aBlogID, const nsAString & aCategoryId, const nsAString & aCategoryName) = 0;

  /* void flushCategories (in flockIBlogAccount aBlogAccount); */
  NS_IMETHOD FlushCategories(flockIBlogAccount *aBlogAccount) = 0;

  /* void addNotification (in AString aURL); */
  NS_IMETHOD AddNotification(const nsAString & aURL) = 0;

  /* void removeNotification (in AString aURL); */
  NS_IMETHOD RemoveNotification(const nsAString & aURL) = 0;

  /* nsIStringEnumerator getNotifications (); */
  NS_IMETHOD GetNotifications(nsIStringEnumerator **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGSERVICE \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices); \
  NS_IMETHOD AddRecent(const nsAString & aName, const nsAString & aFilepath); \
  NS_IMETHOD RecentIsEmpty(PRBool *_retval); \
  NS_IMETHOD RegisterAPI(flockIBlogAPI *aAPI, const nsACString & aShortname); \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIBlogAPI **_retval); \
  NS_IMETHOD GetShortnameFromAPI(flockIBlogAPI *aAPI, nsAString & _retval); \
  NS_IMETHOD GetCandidatesAPI(flockIDetectListener *aListener, const nsAString & aUrl); \
  NS_IMETHOD AccountCount(PRInt32 *_retval); \
  NS_IMETHOD GetAccountList(nsAString & _retval); \
  NS_IMETHOD GetAccount(const nsAString & aBlogID, flockIBlogAccount **_retval); \
  NS_IMETHOD GetBlogAPI(const nsAString & aBlogID, flockIBlogAPI **_retval); \
  NS_IMETHOD SetBlogAPI(const nsAString & aBlogID, flockIBlogAPI *aBlogAPI); \
  NS_IMETHOD AccountExists(const nsAString & aTitle, PRBool *_retval); \
  NS_IMETHOD SaveAccount(const nsAString & aTitle, flockIBlogAccount *aBlogAccount); \
  NS_IMETHOD DeleteAccount(const nsAString & aBlogID); \
  NS_IMETHOD AddCategory(const nsAString & aBlogID, const nsAString & aCategoryId, const nsAString & aCategoryName); \
  NS_IMETHOD FlushCategories(flockIBlogAccount *aBlogAccount); \
  NS_IMETHOD AddNotification(const nsAString & aURL); \
  NS_IMETHOD RemoveNotification(const nsAString & aURL); \
  NS_IMETHOD GetNotifications(nsIStringEnumerator **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGSERVICE(_to) \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) { return _to GetServices(aServices); } \
  NS_IMETHOD AddRecent(const nsAString & aName, const nsAString & aFilepath) { return _to AddRecent(aName, aFilepath); } \
  NS_IMETHOD RecentIsEmpty(PRBool *_retval) { return _to RecentIsEmpty(_retval); } \
  NS_IMETHOD RegisterAPI(flockIBlogAPI *aAPI, const nsACString & aShortname) { return _to RegisterAPI(aAPI, aShortname); } \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIBlogAPI **_retval) { return _to GetAPIFromShortname(aShortname, _retval); } \
  NS_IMETHOD GetShortnameFromAPI(flockIBlogAPI *aAPI, nsAString & _retval) { return _to GetShortnameFromAPI(aAPI, _retval); } \
  NS_IMETHOD GetCandidatesAPI(flockIDetectListener *aListener, const nsAString & aUrl) { return _to GetCandidatesAPI(aListener, aUrl); } \
  NS_IMETHOD AccountCount(PRInt32 *_retval) { return _to AccountCount(_retval); } \
  NS_IMETHOD GetAccountList(nsAString & _retval) { return _to GetAccountList(_retval); } \
  NS_IMETHOD GetAccount(const nsAString & aBlogID, flockIBlogAccount **_retval) { return _to GetAccount(aBlogID, _retval); } \
  NS_IMETHOD GetBlogAPI(const nsAString & aBlogID, flockIBlogAPI **_retval) { return _to GetBlogAPI(aBlogID, _retval); } \
  NS_IMETHOD SetBlogAPI(const nsAString & aBlogID, flockIBlogAPI *aBlogAPI) { return _to SetBlogAPI(aBlogID, aBlogAPI); } \
  NS_IMETHOD AccountExists(const nsAString & aTitle, PRBool *_retval) { return _to AccountExists(aTitle, _retval); } \
  NS_IMETHOD SaveAccount(const nsAString & aTitle, flockIBlogAccount *aBlogAccount) { return _to SaveAccount(aTitle, aBlogAccount); } \
  NS_IMETHOD DeleteAccount(const nsAString & aBlogID) { return _to DeleteAccount(aBlogID); } \
  NS_IMETHOD AddCategory(const nsAString & aBlogID, const nsAString & aCategoryId, const nsAString & aCategoryName) { return _to AddCategory(aBlogID, aCategoryId, aCategoryName); } \
  NS_IMETHOD FlushCategories(flockIBlogAccount *aBlogAccount) { return _to FlushCategories(aBlogAccount); } \
  NS_IMETHOD AddNotification(const nsAString & aURL) { return _to AddNotification(aURL); } \
  NS_IMETHOD RemoveNotification(const nsAString & aURL) { return _to RemoveNotification(aURL); } \
  NS_IMETHOD GetNotifications(nsIStringEnumerator **_retval) { return _to GetNotifications(_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_FLOCKIBLOGSERVICE(_to) \
  NS_IMETHOD GetServices(nsISimpleEnumerator * *aServices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServices(aServices); } \
  NS_IMETHOD AddRecent(const nsAString & aName, const nsAString & aFilepath) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddRecent(aName, aFilepath); } \
  NS_IMETHOD RecentIsEmpty(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->RecentIsEmpty(_retval); } \
  NS_IMETHOD RegisterAPI(flockIBlogAPI *aAPI, const nsACString & aShortname) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterAPI(aAPI, aShortname); } \
  NS_IMETHOD GetAPIFromShortname(const nsACString & aShortname, flockIBlogAPI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPIFromShortname(aShortname, _retval); } \
  NS_IMETHOD GetShortnameFromAPI(flockIBlogAPI *aAPI, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShortnameFromAPI(aAPI, _retval); } \
  NS_IMETHOD GetCandidatesAPI(flockIDetectListener *aListener, const nsAString & aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCandidatesAPI(aListener, aUrl); } \
  NS_IMETHOD AccountCount(PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AccountCount(_retval); } \
  NS_IMETHOD GetAccountList(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountList(_retval); } \
  NS_IMETHOD GetAccount(const nsAString & aBlogID, flockIBlogAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccount(aBlogID, _retval); } \
  NS_IMETHOD GetBlogAPI(const nsAString & aBlogID, flockIBlogAPI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlogAPI(aBlogID, _retval); } \
  NS_IMETHOD SetBlogAPI(const nsAString & aBlogID, flockIBlogAPI *aBlogAPI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBlogAPI(aBlogID, aBlogAPI); } \
  NS_IMETHOD AccountExists(const nsAString & aTitle, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AccountExists(aTitle, _retval); } \
  NS_IMETHOD SaveAccount(const nsAString & aTitle, flockIBlogAccount *aBlogAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveAccount(aTitle, aBlogAccount); } \
  NS_IMETHOD DeleteAccount(const nsAString & aBlogID) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteAccount(aBlogID); } \
  NS_IMETHOD AddCategory(const nsAString & aBlogID, const nsAString & aCategoryId, const nsAString & aCategoryName) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCategory(aBlogID, aCategoryId, aCategoryName); } \
  NS_IMETHOD FlushCategories(flockIBlogAccount *aBlogAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->FlushCategories(aBlogAccount); } \
  NS_IMETHOD AddNotification(const nsAString & aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddNotification(aURL); } \
  NS_IMETHOD RemoveNotification(const nsAString & aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveNotification(aURL); } \
  NS_IMETHOD GetNotifications(nsIStringEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNotifications(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* readonly attribute nsISimpleEnumerator services; */
NS_IMETHODIMP _MYCLASS_::GetServices(nsISimpleEnumerator * *aServices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addRecent (in AString aName, in AString aFilepath); */
NS_IMETHODIMP _MYCLASS_::AddRecent(const nsAString & aName, const nsAString & aFilepath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean recentIsEmpty (); */
NS_IMETHODIMP _MYCLASS_::RecentIsEmpty(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void registerAPI (in flockIBlogAPI aAPI, in ACString aShortname); */
NS_IMETHODIMP _MYCLASS_::RegisterAPI(flockIBlogAPI *aAPI, const nsACString & aShortname)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIBlogAPI getAPIFromShortname (in ACString aShortname); */
NS_IMETHODIMP _MYCLASS_::GetAPIFromShortname(const nsACString & aShortname, flockIBlogAPI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getShortnameFromAPI (in flockIBlogAPI aAPI); */
NS_IMETHODIMP _MYCLASS_::GetShortnameFromAPI(flockIBlogAPI *aAPI, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCandidatesAPI (in flockIDetectListener aListener, in AString aUrl); */
NS_IMETHODIMP _MYCLASS_::GetCandidatesAPI(flockIDetectListener *aListener, const nsAString & aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long accountCount (); */
NS_IMETHODIMP _MYCLASS_::AccountCount(PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* flockIBlogAPI getBlogAPI (in AString aBlogID); */
NS_IMETHODIMP _MYCLASS_::GetBlogAPI(const nsAString & aBlogID, flockIBlogAPI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBlogAPI (in AString aBlogID, in flockIBlogAPI aBlogAPI); */
NS_IMETHODIMP _MYCLASS_::SetBlogAPI(const nsAString & aBlogID, flockIBlogAPI *aBlogAPI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean accountExists (in AString aTitle); */
NS_IMETHODIMP _MYCLASS_::AccountExists(const nsAString & aTitle, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void saveAccount (in AString aTitle, in flockIBlogAccount aBlogAccount); */
NS_IMETHODIMP _MYCLASS_::SaveAccount(const nsAString & aTitle, flockIBlogAccount *aBlogAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteAccount (in AString aBlogID); */
NS_IMETHODIMP _MYCLASS_::DeleteAccount(const nsAString & aBlogID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addCategory (in AString aBlogID, in AString aCategoryId, in AString aCategoryName); */
NS_IMETHODIMP _MYCLASS_::AddCategory(const nsAString & aBlogID, const nsAString & aCategoryId, const nsAString & aCategoryName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void flushCategories (in flockIBlogAccount aBlogAccount); */
NS_IMETHODIMP _MYCLASS_::FlushCategories(flockIBlogAccount *aBlogAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addNotification (in AString aURL); */
NS_IMETHODIMP _MYCLASS_::AddNotification(const nsAString & aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeNotification (in AString aURL); */
NS_IMETHODIMP _MYCLASS_::RemoveNotification(const nsAString & aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIStringEnumerator getNotifications (); */
NS_IMETHODIMP _MYCLASS_::GetNotifications(nsIStringEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIBlogService_h__ */
