#ifndef ROO_LIST_PROXY
#define ROO_LIST_PROXY
#include "TObject.h"
#include "Riosfwd.h"
#include "RooAbsProxy.h"
#include "RooAbsArg.h"
#include "RooArgList.h"
class RooListProxy : public RooArgList, public RooAbsProxy {
public:
RooListProxy() : _defValueServer(kTRUE), _defShapeServer(kFALSE) { _iter = createIterator() ; _owner=0 ; } ;
RooListProxy(const char* name, const char* desc, RooAbsArg* owner,
Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ;
RooListProxy(const char* name, RooAbsArg* owner, const RooListProxy& other) ;
virtual ~RooListProxy() ;
virtual const char* name() const { return GetName() ; }
virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ;
virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; }
virtual Bool_t add(const RooAbsArg& var, Bool_t valueServer, Bool_t shapeServer, Bool_t silent) ;
virtual Bool_t addOwned(RooAbsArg& var, Bool_t silent=kFALSE);
virtual Bool_t addOwned(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::addOwned(list,silent) ; }
virtual Bool_t replace(const RooAbsArg& var1, const RooAbsArg& var2) ;
virtual Bool_t remove(const RooAbsArg& var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE) ;
virtual void removeAll() ;
RooListProxy& operator=(const RooArgList& other) ;
virtual void print(ostream& os, Bool_t addContents=kFALSE) const ;
protected:
RooAbsArg* _owner ;
Bool_t _defValueServer ;
Bool_t _defShapeServer ;
TIterator* _iter ;
virtual Bool_t changePointer(const RooAbsCollection& newServerSet, Bool_t nameChange=kFALSE, Bool_t factoryInitMode=kFALSE) ;
ClassDef(RooListProxy,1)
};
#endif