/***********************************************************************
 * 
 *  Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; version 2.1
 *  of the License.
 *
 *  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 Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, Novell, Inc.
 * 
 *  To contact Novell about this file by physical or electronic mail, 
 *  you may find current contact information at www.novell.com.
 * 
 ***********************************************************************/


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);
      }
   }
}