// @(#)root/proof:$Name:  $:$Id: TProofDebug.h,v 1.6 2003/09/23 08:54:50 rdm Exp $
// Author: Maarten Ballintijn 19/6/2002

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TProofDebug
#define ROOT_TProofDebug


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TProofDebug                                                          //
//                                                                      //
// Detailed logging / debug scheme.                                     //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

class TProofDebug {
public:
   enum EProofDebugMask {
      kNone          = 0,
      kPacketizer    = 1,
      kLoop          = 2,
      kSelector      = 4,
      kOutput        = 8,
      kInput         = 16,
      kGlobal        = 32,
      kPackage       = 64,
      kFeedback      = 128,
      kCondor        = 256,

      kAll           = 0xFFFFFFFF
   };
};

R__EXTERN TProofDebug::EProofDebugMask gProofDebugMask;
R__EXTERN Int_t gProofDebugLevel;

#define PDB(mask,level) \
   if ((TProofDebug::mask & gProofDebugMask) && gProofDebugLevel >= (level))

#endif
