/***********************************************************************
 *  File: Debug.cs
 *  Author: Juan Carlos Luciani (jluciani@novell.com)
 *  Date of Creation: February 2004.
 * 
 *  Namespace: Novell.Security.Utilities
 * 
 *  Classes implemented: Dbg.
 * 
 *  Copyright (C) 2004 Novell, Inc.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this library; if not, write to the Free
 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 ***********************************************************************/
using System;
using System.Diagnostics;

namespace Novell.Security
{
   /// <summary>
   /// Implements methods for sending data to the debugger.
   /// </summary>
   public class Dbg
   {
      #region Class Members and Defines

      private static TraceSwitch m_switch = new TraceSwitch("Novell.Security", "Novell Security Components");

      #endregion

      /// <summary>
      /// Send data to the debugger if the trace level is set to error or above.
      /// </summary>
      /// <param name="line">Line to send to the debugger</param>
      static public void trcError(string line)
      {
         if (m_switch.TraceError)
         {
            Trace.WriteLine(line);
         }
         //Console.WriteLine(line);
      }

      /// <summary>
      /// Send data to the debugger if the trace level is set to informational or above.
      /// </summary>
      /// <param name="line">Line to send to the debugger</param>
      static public void trcInfo(string line)
      {
         if (m_switch.TraceInfo)
         {
            Trace.WriteLine(line);
         }
         //Console.WriteLine(line);
      }

      /// <summary>
      /// Send data to the debugger if the trace level is set to verbose.
      /// </summary>
      /// <param name="line">Line to send to the debugger</param>
      static public void trcVerbose(string line)
      {
         if (m_switch.TraceVerbose)
         {
            Trace.WriteLine(line);
         }
         //Console.WriteLine(line);
      }
   }
}