/* 
 * The contents of this file are subject to the Netscape Public
 * License Version 1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of
 * the License at http://www.mozilla.org/NPL/
 *  
 * Software distributed under the License is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * rights and limitations under the License.
 *  
 * The Original Code is Mozilla Communicator client code, released
 * March 31, 1998.
 * 
 * The Initial Developer of the Original Code is Netscape
 * Communications Corporation. Portions created by Netscape are
 * Copyright (C) 1999 Netscape Communications Corporation. All
 * Rights Reserved.
 * 
 * Contributor(s): 
 */


#include "nsISupports.idl"


/**
 * 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.
*/

[scriptable, uuid(32a805cc-1dd2-11b2-b8b1-f9648fb9df5e)]
interface nsITransactionDescription : nsISupports
{
  /**
   * Returns a string which might be used with logging or other purposes.
   * @param aString will be set to the transactions description string.
   */
  wstring getLogDescription();

  /**
   * 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);

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

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

};
