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

#ifndef __gen_nsITransactionDescription_h__
#define __gen_nsITransactionDescription_h__

#include "nsISupports.h"


/* starting interface:    nsITransactionDescription */
#define NS_ITRANSACTIONDESCRIPTION_IID_STR "32a805cc-1dd2-11b2-b8b1-f9648fb9df5e"

#define NS_ITRANSACTIONDESCRIPTION_IID \
  {0x32a805cc, 0x1dd2, 0x11b2, \
    { 0xb8, 0xb1, 0xf9, 0x64, 0x8f, 0xb9, 0xdf, 0x5e }}

/**
 * UI Transaction interface to outside world
 * A transaction specific interface for handling its user-interface needs. 
 * <P>
 * It's implemented by an object that can get and set strings and IDs for 
 * a particular transaction.
*/
class NS_NO_VTABLE nsITransactionDescription : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ITRANSACTIONDESCRIPTION_IID)

  /**
   * Returns a string which might be used with logging or other purposes.
   * @param aString will be set to the transactions description string.
   */
  /* wstring getLogDescription (); */
  NS_IMETHOD GetLogDescription(PRUnichar **_retval) = 0;

  /**
   * Sets a string for later query (for example, it might be associated with logging).
   * @param aString will be used as the new description string for a given transaction.
   */
  /* void setLogDescription (in wstring aString); */
  NS_IMETHOD SetLogDescription(const PRUnichar *aString) = 0;

  /**
   * Returns an id for a particular transaction.
   * @param aTransactionID will contain the transaction's id.
   */
  /* PRInt32 getTransactionDescriptionID (); */
  NS_IMETHOD GetTransactionDescriptionID(PRInt32 *_retval) = 0;

  /**
   * Sets the id for a particular transaction.
   * @param aTransactionID will contain the transaction's id.
   */
  /* void setTransactionDescriptionID (in PRInt32 aTransactionID); */
  NS_IMETHOD SetTransactionDescriptionID(PRInt32 aTransactionID) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSITRANSACTIONDESCRIPTION \
  NS_IMETHOD GetLogDescription(PRUnichar **_retval); \
  NS_IMETHOD SetLogDescription(const PRUnichar *aString); \
  NS_IMETHOD GetTransactionDescriptionID(PRInt32 *_retval); \
  NS_IMETHOD SetTransactionDescriptionID(PRInt32 aTransactionID); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSITRANSACTIONDESCRIPTION(_to) \
  NS_IMETHOD GetLogDescription(PRUnichar **_retval) { return _to ## GetLogDescription(_retval); } \
  NS_IMETHOD SetLogDescription(const PRUnichar *aString) { return _to ## SetLogDescription(aString); } \
  NS_IMETHOD GetTransactionDescriptionID(PRInt32 *_retval) { return _to ## GetTransactionDescriptionID(_retval); } \
  NS_IMETHOD SetTransactionDescriptionID(PRInt32 aTransactionID) { return _to ## SetTransactionDescriptionID(aTransactionID); } 

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

/* Header file */
class nsTransactionDescription : public nsITransactionDescription
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSITRANSACTIONDESCRIPTION

  nsTransactionDescription();
  virtual ~nsTransactionDescription();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsTransactionDescription, nsITransactionDescription)

nsTransactionDescription::nsTransactionDescription()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* wstring getLogDescription (); */
NS_IMETHODIMP nsTransactionDescription::GetLogDescription(PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setLogDescription (in wstring aString); */
NS_IMETHODIMP nsTransactionDescription::SetLogDescription(const PRUnichar *aString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* PRInt32 getTransactionDescriptionID (); */
NS_IMETHODIMP nsTransactionDescription::GetTransactionDescriptionID(PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setTransactionDescriptionID (in PRInt32 aTransactionID); */
NS_IMETHODIMP nsTransactionDescription::SetTransactionDescriptionID(PRInt32 aTransactionID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsITransactionDescription_h__ */
