ROOT logo
// @(#)root/base:$Id$
// Author: Kristjan Gulbrandsen   11/05/04

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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TVirtualPerfStats                                                    //
//                                                                      //
// Provides the interface for the PROOF internal performance measurment //
// and event tracing.                                                   //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#include "TVirtualPerfStats.h"
#include "TThreadSlots.h"


ClassImp(TVirtualPerfStats)


static const char *gEventTypeNames[] = {
   "UnDefined",
   "Packet",
   "Start",
   "Stop",
   "File",
   "FileOpen",
   "FileRead",
   "Rate"
};

//______________________________________________________________________________
TVirtualPerfStats *&TVirtualPerfStats::CurrentPerfStats()
{
   // Return the current ROOT perf stats if any.

   static TVirtualPerfStats *currentPerfStats = 0;
   if (!gThreadTsd) {
      return currentPerfStats;
   } else {
      return *(TVirtualPerfStats**)(*gThreadTsd)(&currentPerfStats,ROOT::kPerfStatsThreadSlot);
   }
}

//______________________________________________________________________________
const char *TVirtualPerfStats::EventType(EEventType type)
{
   // Return the name of the event type.
   if (type < kUnDefined || type >= kNumEventType) {
      return "Illegal EEventType";
   } else {
      return gEventTypeNames[type];
   }
}
 TVirtualPerfStats.cxx:1
 TVirtualPerfStats.cxx:2
 TVirtualPerfStats.cxx:3
 TVirtualPerfStats.cxx:4
 TVirtualPerfStats.cxx:5
 TVirtualPerfStats.cxx:6
 TVirtualPerfStats.cxx:7
 TVirtualPerfStats.cxx:8
 TVirtualPerfStats.cxx:9
 TVirtualPerfStats.cxx:10
 TVirtualPerfStats.cxx:11
 TVirtualPerfStats.cxx:12
 TVirtualPerfStats.cxx:13
 TVirtualPerfStats.cxx:14
 TVirtualPerfStats.cxx:15
 TVirtualPerfStats.cxx:16
 TVirtualPerfStats.cxx:17
 TVirtualPerfStats.cxx:18
 TVirtualPerfStats.cxx:19
 TVirtualPerfStats.cxx:20
 TVirtualPerfStats.cxx:21
 TVirtualPerfStats.cxx:22
 TVirtualPerfStats.cxx:23
 TVirtualPerfStats.cxx:24
 TVirtualPerfStats.cxx:25
 TVirtualPerfStats.cxx:26
 TVirtualPerfStats.cxx:27
 TVirtualPerfStats.cxx:28
 TVirtualPerfStats.cxx:29
 TVirtualPerfStats.cxx:30
 TVirtualPerfStats.cxx:31
 TVirtualPerfStats.cxx:32
 TVirtualPerfStats.cxx:33
 TVirtualPerfStats.cxx:34
 TVirtualPerfStats.cxx:35
 TVirtualPerfStats.cxx:36
 TVirtualPerfStats.cxx:37
 TVirtualPerfStats.cxx:38
 TVirtualPerfStats.cxx:39
 TVirtualPerfStats.cxx:40
 TVirtualPerfStats.cxx:41
 TVirtualPerfStats.cxx:42
 TVirtualPerfStats.cxx:43
 TVirtualPerfStats.cxx:44
 TVirtualPerfStats.cxx:45
 TVirtualPerfStats.cxx:46
 TVirtualPerfStats.cxx:47
 TVirtualPerfStats.cxx:48
 TVirtualPerfStats.cxx:49
 TVirtualPerfStats.cxx:50
 TVirtualPerfStats.cxx:51
 TVirtualPerfStats.cxx:52
 TVirtualPerfStats.cxx:53
 TVirtualPerfStats.cxx:54
 TVirtualPerfStats.cxx:55
 TVirtualPerfStats.cxx:56
 TVirtualPerfStats.cxx:57
 TVirtualPerfStats.cxx:58
 TVirtualPerfStats.cxx:59
 TVirtualPerfStats.cxx:60
 TVirtualPerfStats.cxx:61
 TVirtualPerfStats.cxx:62