#ifndef ROO_ABS_CACHE_ELEMENT
#define ROO_ABS_CACHE_ELEMENT
#include "Rtypes.h"
#include "RooAbsArg.h"
class RooAbsCollection ;
class RooArgSet ;
class RooArgList ;
class RooAbsCacheElement {
public:
RooAbsCacheElement() : _owner(0) {
} ;
virtual Bool_t redirectServersHook(const RooAbsCollection& , Bool_t ,
Bool_t , Bool_t ) ;
virtual void printCompactTreeHook(std::ostream&, const char *, Int_t curElem, Int_t totElem) ;
virtual ~RooAbsCacheElement() {
} ;
enum Action { OperModeChange,OptimizeCaching,FindConstantNodes } ;
virtual RooArgList containedArgs(Action) = 0 ;
virtual void operModeHook(RooAbsArg::OperMode) ;
virtual void optimizeCacheMode(const RooArgSet& obs, RooArgSet& optNodes, RooLinkedList& processedNodes) ;
virtual void findConstantNodes(const RooArgSet& obs, RooArgSet& cacheList, RooLinkedList& processedNodes) ;
void setOwner(RooAbsArg* owner) {
_owner = owner ;
}
protected:
RooAbsArg* _owner ;
ClassDef(RooAbsCacheElement,1)
} ;
#endif