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

#ifndef __gen_calIDateTimeFormatter_h__
#define __gen_calIDateTimeFormatter_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 calIItemBase; /* forward declaration */


/* starting interface:    calIDateTimeFormatter */
#define CALIDATETIMEFORMATTER_IID_STR "69741510-5f5d-11e4-9803-0800200c9a66"

#define CALIDATETIMEFORMATTER_IID \
  {0x69741510, 0x5f5d, 0x11e4, \
    { 0x98, 0x03, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 }}

class NS_NO_VTABLE calIDateTimeFormatter : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(CALIDATETIMEFORMATTER_IID)

  /* AString formatDate (in calIDateTime aDate); */
  NS_IMETHOD FormatDate(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AString formatDateShort (in calIDateTime aDate); */
  NS_IMETHOD FormatDateShort(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AString formatDateLong (in calIDateTime aDate); */
  NS_IMETHOD FormatDateLong(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AString formatDateWithoutYear (in calIDateTime aDate); */
  NS_IMETHOD FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AString formatTime (in calIDateTime aDate); */
  NS_IMETHOD FormatTime(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AString formatDateTime (in calIDateTime aDate); */
  NS_IMETHOD FormatDateTime(calIDateTime *aDate, nsAString & _retval) = 0;

  /* AUTF8String formatItemInterval (in calIItemBase aItem); */
  NS_IMETHOD FormatItemInterval(calIItemBase *aItem, nsACString & _retval) = 0;

  /* AUTF8String formatItemTimeInterval (in calIItemBase aItem); */
  NS_IMETHOD FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval) = 0;

  /* AUTF8String formatInterval (in calIDateTime aStartDate, in calIDateTime aEndDate); */
  NS_IMETHOD FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval) = 0;

  /* AUTF8String formatTimeInterval (in calIDateTime aStartTime, in calIDateTime aEndTime); */
  NS_IMETHOD FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval) = 0;

  /* AUTF8String formatDayWithOrdinal (in unsigned long aMonthdayIndex); */
  NS_IMETHOD FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval) = 0;

  /* AString monthName (in unsigned long aMonthIndex); */
  NS_IMETHOD MonthName(uint32_t aMonthIndex, nsAString & _retval) = 0;

  /* AString shortMonthName (in unsigned long aMonthIndex); */
  NS_IMETHOD ShortMonthName(uint32_t aMonthIndex, nsAString & _retval) = 0;

  /* AString dayName (in unsigned long aDayIndex); */
  NS_IMETHOD DayName(uint32_t aDayIndex, nsAString & _retval) = 0;

  /* AString shortDayName (in unsigned long aDayIndex); */
  NS_IMETHOD ShortDayName(uint32_t aDayIndex, nsAString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(calIDateTimeFormatter, CALIDATETIMEFORMATTER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIDATETIMEFORMATTER \
  NS_IMETHOD FormatDate(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatDateShort(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatDateLong(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatTime(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatDateTime(calIDateTime *aDate, nsAString & _retval) override; \
  NS_IMETHOD FormatItemInterval(calIItemBase *aItem, nsACString & _retval) override; \
  NS_IMETHOD FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval) override; \
  NS_IMETHOD FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval) override; \
  NS_IMETHOD FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval) override; \
  NS_IMETHOD FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval) override; \
  NS_IMETHOD MonthName(uint32_t aMonthIndex, nsAString & _retval) override; \
  NS_IMETHOD ShortMonthName(uint32_t aMonthIndex, nsAString & _retval) override; \
  NS_IMETHOD DayName(uint32_t aDayIndex, nsAString & _retval) override; \
  NS_IMETHOD ShortDayName(uint32_t aDayIndex, 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_CALIDATETIMEFORMATTER \
  NS_METHOD FormatDate(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatDateShort(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatDateLong(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatTime(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatDateTime(calIDateTime *aDate, nsAString & _retval); \
  NS_METHOD FormatItemInterval(calIItemBase *aItem, nsACString & _retval); \
  NS_METHOD FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval); \
  NS_METHOD FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval); \
  NS_METHOD FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval); \
  NS_METHOD FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval); \
  NS_METHOD MonthName(uint32_t aMonthIndex, nsAString & _retval); \
  NS_METHOD ShortMonthName(uint32_t aMonthIndex, nsAString & _retval); \
  NS_METHOD DayName(uint32_t aDayIndex, nsAString & _retval); \
  NS_METHOD ShortDayName(uint32_t aDayIndex, nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIDATETIMEFORMATTER(_to) \
  NS_IMETHOD FormatDate(calIDateTime *aDate, nsAString & _retval) override { return _to FormatDate(aDate, _retval); } \
  NS_IMETHOD FormatDateShort(calIDateTime *aDate, nsAString & _retval) override { return _to FormatDateShort(aDate, _retval); } \
  NS_IMETHOD FormatDateLong(calIDateTime *aDate, nsAString & _retval) override { return _to FormatDateLong(aDate, _retval); } \
  NS_IMETHOD FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval) override { return _to FormatDateWithoutYear(aDate, _retval); } \
  NS_IMETHOD FormatTime(calIDateTime *aDate, nsAString & _retval) override { return _to FormatTime(aDate, _retval); } \
  NS_IMETHOD FormatDateTime(calIDateTime *aDate, nsAString & _retval) override { return _to FormatDateTime(aDate, _retval); } \
  NS_IMETHOD FormatItemInterval(calIItemBase *aItem, nsACString & _retval) override { return _to FormatItemInterval(aItem, _retval); } \
  NS_IMETHOD FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval) override { return _to FormatItemTimeInterval(aItem, _retval); } \
  NS_IMETHOD FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval) override { return _to FormatInterval(aStartDate, aEndDate, _retval); } \
  NS_IMETHOD FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval) override { return _to FormatTimeInterval(aStartTime, aEndTime, _retval); } \
  NS_IMETHOD FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval) override { return _to FormatDayWithOrdinal(aMonthdayIndex, _retval); } \
  NS_IMETHOD MonthName(uint32_t aMonthIndex, nsAString & _retval) override { return _to MonthName(aMonthIndex, _retval); } \
  NS_IMETHOD ShortMonthName(uint32_t aMonthIndex, nsAString & _retval) override { return _to ShortMonthName(aMonthIndex, _retval); } \
  NS_IMETHOD DayName(uint32_t aDayIndex, nsAString & _retval) override { return _to DayName(aDayIndex, _retval); } \
  NS_IMETHOD ShortDayName(uint32_t aDayIndex, nsAString & _retval) override { return _to ShortDayName(aDayIndex, _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_CALIDATETIMEFORMATTER(_to) \
  NS_IMETHOD FormatDate(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDate(aDate, _retval); } \
  NS_IMETHOD FormatDateShort(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDateShort(aDate, _retval); } \
  NS_IMETHOD FormatDateLong(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDateLong(aDate, _retval); } \
  NS_IMETHOD FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDateWithoutYear(aDate, _retval); } \
  NS_IMETHOD FormatTime(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatTime(aDate, _retval); } \
  NS_IMETHOD FormatDateTime(calIDateTime *aDate, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDateTime(aDate, _retval); } \
  NS_IMETHOD FormatItemInterval(calIItemBase *aItem, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatItemInterval(aItem, _retval); } \
  NS_IMETHOD FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatItemTimeInterval(aItem, _retval); } \
  NS_IMETHOD FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatInterval(aStartDate, aEndDate, _retval); } \
  NS_IMETHOD FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatTimeInterval(aStartTime, aEndTime, _retval); } \
  NS_IMETHOD FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatDayWithOrdinal(aMonthdayIndex, _retval); } \
  NS_IMETHOD MonthName(uint32_t aMonthIndex, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MonthName(aMonthIndex, _retval); } \
  NS_IMETHOD ShortMonthName(uint32_t aMonthIndex, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ShortMonthName(aMonthIndex, _retval); } \
  NS_IMETHOD DayName(uint32_t aDayIndex, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DayName(aDayIndex, _retval); } \
  NS_IMETHOD ShortDayName(uint32_t aDayIndex, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ShortDayName(aDayIndex, _retval); } 

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

/* Header file */
class _MYCLASS_ : public calIDateTimeFormatter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIDATETIMEFORMATTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* AString formatDate (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatDate(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString formatDateShort (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatDateShort(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString formatDateLong (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatDateLong(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString formatDateWithoutYear (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatDateWithoutYear(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString formatTime (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatTime(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString formatDateTime (in calIDateTime aDate); */
NS_IMETHODIMP _MYCLASS_::FormatDateTime(calIDateTime *aDate, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String formatItemInterval (in calIItemBase aItem); */
NS_IMETHODIMP _MYCLASS_::FormatItemInterval(calIItemBase *aItem, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String formatItemTimeInterval (in calIItemBase aItem); */
NS_IMETHODIMP _MYCLASS_::FormatItemTimeInterval(calIItemBase *aItem, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String formatInterval (in calIDateTime aStartDate, in calIDateTime aEndDate); */
NS_IMETHODIMP _MYCLASS_::FormatInterval(calIDateTime *aStartDate, calIDateTime *aEndDate, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String formatTimeInterval (in calIDateTime aStartTime, in calIDateTime aEndTime); */
NS_IMETHODIMP _MYCLASS_::FormatTimeInterval(calIDateTime *aStartTime, calIDateTime *aEndTime, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String formatDayWithOrdinal (in unsigned long aMonthdayIndex); */
NS_IMETHODIMP _MYCLASS_::FormatDayWithOrdinal(uint32_t aMonthdayIndex, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString monthName (in unsigned long aMonthIndex); */
NS_IMETHODIMP _MYCLASS_::MonthName(uint32_t aMonthIndex, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString shortMonthName (in unsigned long aMonthIndex); */
NS_IMETHODIMP _MYCLASS_::ShortMonthName(uint32_t aMonthIndex, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString dayName (in unsigned long aDayIndex); */
NS_IMETHODIMP _MYCLASS_::DayName(uint32_t aDayIndex, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString shortDayName (in unsigned long aDayIndex); */
NS_IMETHODIMP _MYCLASS_::ShortDayName(uint32_t aDayIndex, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_calIDateTimeFormatter_h__ */
