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

#ifndef __gen_calIFreeBusyProvider_h__
#define __gen_calIFreeBusyProvider_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 calIDateTime; /* forward declaration */

class calIPeriod; /* forward declaration */

class calIOperation; /* forward declaration */

class calIGenericOperationListener; /* forward declaration */


/* starting interface:    calIFreeBusyProvider */
#define CALIFREEBUSYPROVIDER_IID_STR "eb24424c-dd22-4306-9379-fa098c61f5af"

#define CALIFREEBUSYPROVIDER_IID \
  {0xeb24424c, 0xdd22, 0x4306, \
    { 0x93, 0x79, 0xfa, 0x09, 0x8c, 0x61, 0xf5, 0xaf }}

class NS_NO_VTABLE calIFreeBusyProvider : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALIFREEBUSYPROVIDER_IID)

  /* calIOperation getFreeBusyIntervals (in AUTF8String aCalId, in calIDateTime aRangeStart, in calIDateTime aRangeEnd, in unsigned long aBusyTypes, in calIGenericOperationListener aListener); */
  NS_IMETHOD GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calIFreeBusyProvider, CALIFREEBUSYPROVIDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIFREEBUSYPROVIDER \
  NS_IMETHOD GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_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_CALIFREEBUSYPROVIDER \
  NS_METHOD GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIFREEBUSYPROVIDER(_to) \
  NS_IMETHOD GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_retval) override { return _to GetFreeBusyIntervals(aCalId, aRangeStart, aRangeEnd, aBusyTypes, aListener, _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_CALIFREEBUSYPROVIDER(_to) \
  NS_IMETHOD GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeBusyIntervals(aCalId, aRangeStart, aRangeEnd, aBusyTypes, aListener, _retval); } 

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

/* Header file */
class _MYCLASS_ : public calIFreeBusyProvider
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIFREEBUSYPROVIDER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calIFreeBusyProvider)

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

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

/* calIOperation getFreeBusyIntervals (in AUTF8String aCalId, in calIDateTime aRangeStart, in calIDateTime aRangeEnd, in unsigned long aBusyTypes, in calIGenericOperationListener aListener); */
NS_IMETHODIMP _MYCLASS_::GetFreeBusyIntervals(const nsACString & aCalId, calIDateTime *aRangeStart, calIDateTime *aRangeEnd, uint32_t aBusyTypes, calIGenericOperationListener *aListener, calIOperation * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    calIFreeBusyInterval */
#define CALIFREEBUSYINTERVAL_IID_STR "ccbeaf5e-db87-4bc9-8bb7-24754b76bcb5"

#define CALIFREEBUSYINTERVAL_IID \
  {0xccbeaf5e, 0xdb87, 0x4bc9, \
    { 0x8b, 0xb7, 0x24, 0x75, 0x4b, 0x76, 0xbc, 0xb5 }}

class NS_NO_VTABLE calIFreeBusyInterval : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALIFREEBUSYINTERVAL_IID)

  /* readonly attribute AUTF8String calId; */
  NS_IMETHOD GetCalId(nsACString & aCalId) = 0;

  /* readonly attribute calIPeriod interval; */
  NS_IMETHOD GetInterval(calIPeriod * *aInterval) = 0;

  enum {
    UNKNOWN = 0U,
    FREE = 1U,
    BUSY = 2U,
    BUSY_UNAVAILABLE = 4U,
    BUSY_TENTATIVE = 8U,
    BUSY_ALL = 14U
  };

  /* readonly attribute unsigned long freeBusyType; */
  NS_IMETHOD GetFreeBusyType(uint32_t *aFreeBusyType) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calIFreeBusyInterval, CALIFREEBUSYINTERVAL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIFREEBUSYINTERVAL \
  NS_IMETHOD GetCalId(nsACString & aCalId) override; \
  NS_IMETHOD GetInterval(calIPeriod * *aInterval) override; \
  NS_IMETHOD GetFreeBusyType(uint32_t *aFreeBusyType) 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_CALIFREEBUSYINTERVAL \
  NS_METHOD GetCalId(nsACString & aCalId); \
  NS_METHOD GetInterval(calIPeriod * *aInterval); \
  NS_METHOD GetFreeBusyType(uint32_t *aFreeBusyType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIFREEBUSYINTERVAL(_to) \
  NS_IMETHOD GetCalId(nsACString & aCalId) override { return _to GetCalId(aCalId); } \
  NS_IMETHOD GetInterval(calIPeriod * *aInterval) override { return _to GetInterval(aInterval); } \
  NS_IMETHOD GetFreeBusyType(uint32_t *aFreeBusyType) override { return _to GetFreeBusyType(aFreeBusyType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALIFREEBUSYINTERVAL(_to) \
  NS_IMETHOD GetCalId(nsACString & aCalId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCalId(aCalId); } \
  NS_IMETHOD GetInterval(calIPeriod * *aInterval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterval(aInterval); } \
  NS_IMETHOD GetFreeBusyType(uint32_t *aFreeBusyType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeBusyType(aFreeBusyType); } 

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

/* Header file */
class _MYCLASS_ : public calIFreeBusyInterval
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIFREEBUSYINTERVAL

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calIFreeBusyInterval)

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

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

/* readonly attribute AUTF8String calId; */
NS_IMETHODIMP _MYCLASS_::GetCalId(nsACString & aCalId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute calIPeriod interval; */
NS_IMETHODIMP _MYCLASS_::GetInterval(calIPeriod * *aInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long freeBusyType; */
NS_IMETHODIMP _MYCLASS_::GetFreeBusyType(uint32_t *aFreeBusyType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    calIFreeBusyService */
#define CALIFREEBUSYSERVICE_IID_STR "be1796cf-cb53-482e-8942-d6caa0a11baa"

#define CALIFREEBUSYSERVICE_IID \
  {0xbe1796cf, 0xcb53, 0x482e, \
    { 0x89, 0x42, 0xd6, 0xca, 0xa0, 0xa1, 0x1b, 0xaa }}

class NS_NO_VTABLE calIFreeBusyService : public calIFreeBusyProvider {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALIFREEBUSYSERVICE_IID)

  /* void addProvider (in calIFreeBusyProvider aProvider); */
  NS_IMETHOD AddProvider(calIFreeBusyProvider *aProvider) = 0;

  /* void removeProvider (in calIFreeBusyProvider aProvider); */
  NS_IMETHOD RemoveProvider(calIFreeBusyProvider *aProvider) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calIFreeBusyService, CALIFREEBUSYSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIFREEBUSYSERVICE \
  NS_IMETHOD AddProvider(calIFreeBusyProvider *aProvider) override; \
  NS_IMETHOD RemoveProvider(calIFreeBusyProvider *aProvider) 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_CALIFREEBUSYSERVICE \
  NS_METHOD AddProvider(calIFreeBusyProvider *aProvider); \
  NS_METHOD RemoveProvider(calIFreeBusyProvider *aProvider); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIFREEBUSYSERVICE(_to) \
  NS_IMETHOD AddProvider(calIFreeBusyProvider *aProvider) override { return _to AddProvider(aProvider); } \
  NS_IMETHOD RemoveProvider(calIFreeBusyProvider *aProvider) override { return _to RemoveProvider(aProvider); } 

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

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

/* Header file */
class _MYCLASS_ : public calIFreeBusyService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIFREEBUSYSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, calIFreeBusyService)

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

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

/* void addProvider (in calIFreeBusyProvider aProvider); */
NS_IMETHODIMP _MYCLASS_::AddProvider(calIFreeBusyProvider *aProvider)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeProvider (in calIFreeBusyProvider aProvider); */
NS_IMETHODIMP _MYCLASS_::RemoveProvider(calIFreeBusyProvider *aProvider)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_calIFreeBusyProvider_h__ */
