/usr/include/root/RooLinkedList.h is in libroot-roofit-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | /*****************************************************************************
* Project: RooFit *
* Package: RooFitCore *
* File: $Id: RooLinkedList.h,v 1.15 2007/05/11 09:11:30 verkerke 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) *
*****************************************************************************/
#ifndef ROO_LINKED_LIST
#define ROO_LINKED_LIST
#include <map>
#include <list>
#include "TNamed.h"
#include "RooLinkedListElem.h"
#include "RooHashTable.h"
class RooLinkedListIter ;
class RooFIter ;
class TIterator ;
class RooAbsArg ;
namespace RooLinkedListImplDetails {
class Chunk;
class Pool;
}
class RooLinkedList : public TObject {
public:
// Constructor
RooLinkedList(Int_t htsize=0) ;
// Copy constructor
RooLinkedList(const RooLinkedList& other) ;
virtual TObject* Clone(const char* =0) const {
return new RooLinkedList(*this) ;
}
// Assignment operator
RooLinkedList& operator=(const RooLinkedList& other) ;
Int_t getHashTableSize() const {
// Return size of hash table
return _htableName ? _htableName->size() : 0 ;
}
void setHashTableSize(Int_t size) ;
// Destructor
virtual ~RooLinkedList() ;
Int_t GetSize() const { return _size ; }
virtual void Add(TObject* arg) { Add(arg,1) ; }
virtual Bool_t Remove(TObject* arg) ;
TObject* At(Int_t index) const ;
Bool_t Replace(const TObject* oldArg, const TObject* newArg) ;
TIterator* MakeIterator(Bool_t dir=kTRUE) const ;
RooLinkedListIter iterator(Bool_t dir=kTRUE) const ;
RooFIter fwdIterator() const ;
void Clear(Option_t *o=0) ;
void Delete(Option_t *o=0) ;
TObject* find(const char* name) const ;
RooAbsArg* findArg(const RooAbsArg*) const ;
TObject* FindObject(const char* name) const ;
TObject* FindObject(const TObject* obj) const ;
Int_t IndexOf(const char* name) const ;
Int_t IndexOf(const TObject* arg) const ;
TObject* First() const {
return _first?_first->_arg:0 ;
}
void Print(const char* opt) const ;
void Sort(Bool_t ascend=kTRUE) ;
const char* GetName() const { return _name.Data() ; }
void SetName(const char* name) { _name = name ; }
void useNptr(Bool_t flag) { _useNptr = flag ; }
protected:
RooLinkedListElem* createElement(TObject* obj, RooLinkedListElem* elem=0) ;
void deleteElement(RooLinkedListElem*) ;
friend class RooLinkedListIter ;
friend class RooFIter ;
virtual void Add(TObject* arg, Int_t refCount) ;
RooLinkedListElem* findLink(const TObject* arg) const ;
Int_t _hashThresh ; // Size threshold for hashing
Int_t _size ; // Current size of list
RooLinkedListElem* _first ; //! Link to first element of list
RooLinkedListElem* _last ; //! Link to last element of list
RooHashTable* _htableName ; //! Hash table by name
RooHashTable* _htableLink ; //! Hash table by link pointer
TString _name ;
Bool_t _useNptr ; //!
private:
template <bool ascending>
static RooLinkedListElem* mergesort_impl(RooLinkedListElem* l1,
const unsigned sz, RooLinkedListElem** tail = 0);
/// memory pool for quick allocation of RooLinkedListElems
typedef RooLinkedListImplDetails::Pool Pool;
/// shared memory pool for allocation of RooLinkedListElems
static Pool* _pool; //!
ClassDef(RooLinkedList,3) // Doubly linked list for storage of RooAbsArg objects
};
#endif
|