/*****************************************************************************
* Project: RooFit *
* Package: RooFitCore *
* File: $Id: RooNameReg.cc,v 1.4 2005/06/16 09:31:29 wverkerke Exp $
* Authors: *
* WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
* DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
* *
* Copyright (c) 2000-2005, Regents of the University of California *
* and Stanford University. All rights reserved. *
* *
* Redistribution and use in source and binary forms, *
* with or without modification, are permitted according to the terms *
* listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
*****************************************************************************/
// -- CLASS DESCRIPTION [MISC] --
// RooNameReg is a registry for 'const char*' name. For each unique
// name (which is not necessarily a unique pointer in the C++ standard)
// a unique pointer to a TNamed object is return that can be used for
// fast searches and comparisons.
#include "RooFit.h"
#include "RooNameReg.h"
#include "RooNameReg.h"
ClassImp(RooNameReg)
;
RooNameReg* RooNameReg::_instance = 0 ;
RooNameReg::~RooNameReg()
{
}
RooNameReg::RooNameReg(const RooNameReg& other) : TNamed(other)
{
}
RooNameReg& RooNameReg::instance()
{
if (_instance==0) {
_instance = new RooNameReg ;
}
return *_instance ;
}
const TNamed* RooNameReg::constPtr(const char* str) {
// Handle null pointer case explicitly
if (str==0) return 0 ;
// See if name is already registered ;
TNamed* t = (TNamed*) _htable.find(str) ;
if (t) return t ;
// If not, register now
t = new TNamed(str,str) ;
_htable.add(t) ;
return t ;
}
const char* RooNameReg::constStr(const TNamed* namePtr)
{
if (namePtr) return namePtr->GetName() ;
return 0 ;
}
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.