#include "TBranchProxyDirector.h"
#include "TBranchProxy.h"
#include "TFriendProxy.h"
#include "TTree.h"
#include <algorithm>
namespace std {} using namespace std;
ClassImp(ROOT::TBranchProxyDirector);
namespace ROOT {
void Reset(TBranchProxy *x) { x->Reset(); }
void ResetReadEntry(TFriendProxy *x) { x->ResetReadEntry(); }
struct Update {
Update(TTree *newtree) : fNewTree(newtree) {}
TTree *fNewTree;
void operator()(TFriendProxy *x) { x->Update(fNewTree); }
};
TBranchProxyDirector::TBranchProxyDirector(TTree* tree, Long64_t i) :
fTree(tree),
fEntry(i)
{
}
TBranchProxyDirector::TBranchProxyDirector(TTree* tree, Int_t i) :
fTree(tree),
fEntry(i)
{
}
void TBranchProxyDirector::Attach(TBranchProxy* p) {
fDirected.push_back(p);
}
void TBranchProxyDirector::Attach(TFriendProxy* p) {
fFriends.push_back(p);
}
void TBranchProxyDirector::SetReadEntry(Long64_t entry) {
fEntry = entry;
if (!fFriends.empty()) {
for_each(fFriends.begin(),fFriends.end(),ResetReadEntry);
}
}
TTree* TBranchProxyDirector::SetTree(TTree *newtree) {
TTree* oldtree = fTree;
fTree = newtree;
fEntry = -1;
for_each(fDirected.begin(),fDirected.end(),Reset);
Update update(fTree);
for_each(fFriends.begin(),fFriends.end(),update);
return oldtree;
}
}
TBranchProxyDirector.cxx:1 TBranchProxyDirector.cxx:2 TBranchProxyDirector.cxx:3 TBranchProxyDirector.cxx:4 TBranchProxyDirector.cxx:5 TBranchProxyDirector.cxx:6 TBranchProxyDirector.cxx:7 TBranchProxyDirector.cxx:8 TBranchProxyDirector.cxx:9 TBranchProxyDirector.cxx:10 TBranchProxyDirector.cxx:11 TBranchProxyDirector.cxx:12 TBranchProxyDirector.cxx:13 TBranchProxyDirector.cxx:14 TBranchProxyDirector.cxx:15 TBranchProxyDirector.cxx:16 TBranchProxyDirector.cxx:17 TBranchProxyDirector.cxx:18 TBranchProxyDirector.cxx:19 TBranchProxyDirector.cxx:20 TBranchProxyDirector.cxx:21 TBranchProxyDirector.cxx:22 TBranchProxyDirector.cxx:23 TBranchProxyDirector.cxx:24 TBranchProxyDirector.cxx:25 TBranchProxyDirector.cxx:26 TBranchProxyDirector.cxx:27 TBranchProxyDirector.cxx:28 TBranchProxyDirector.cxx:29 TBranchProxyDirector.cxx:30 TBranchProxyDirector.cxx:31 TBranchProxyDirector.cxx:32 TBranchProxyDirector.cxx:33 TBranchProxyDirector.cxx:34 TBranchProxyDirector.cxx:35 TBranchProxyDirector.cxx:36 TBranchProxyDirector.cxx:37 TBranchProxyDirector.cxx:38 TBranchProxyDirector.cxx:39 TBranchProxyDirector.cxx:40 TBranchProxyDirector.cxx:41 TBranchProxyDirector.cxx:42 TBranchProxyDirector.cxx:43 TBranchProxyDirector.cxx:44 TBranchProxyDirector.cxx:45 TBranchProxyDirector.cxx:46 TBranchProxyDirector.cxx:47 TBranchProxyDirector.cxx:48 TBranchProxyDirector.cxx:49 TBranchProxyDirector.cxx:50 TBranchProxyDirector.cxx:51 TBranchProxyDirector.cxx:52 TBranchProxyDirector.cxx:53 TBranchProxyDirector.cxx:54 TBranchProxyDirector.cxx:55 TBranchProxyDirector.cxx:56 TBranchProxyDirector.cxx:57 TBranchProxyDirector.cxx:58 TBranchProxyDirector.cxx:59 TBranchProxyDirector.cxx:60 TBranchProxyDirector.cxx:61 TBranchProxyDirector.cxx:62 TBranchProxyDirector.cxx:63 TBranchProxyDirector.cxx:64 TBranchProxyDirector.cxx:65 TBranchProxyDirector.cxx:66 TBranchProxyDirector.cxx:67 TBranchProxyDirector.cxx:68 TBranchProxyDirector.cxx:69 TBranchProxyDirector.cxx:70 TBranchProxyDirector.cxx:71 TBranchProxyDirector.cxx:72 TBranchProxyDirector.cxx:73 TBranchProxyDirector.cxx:74 TBranchProxyDirector.cxx:75 TBranchProxyDirector.cxx:76 TBranchProxyDirector.cxx:77 TBranchProxyDirector.cxx:78 TBranchProxyDirector.cxx:79 TBranchProxyDirector.cxx:80 TBranchProxyDirector.cxx:81 TBranchProxyDirector.cxx:82 TBranchProxyDirector.cxx:83 TBranchProxyDirector.cxx:84 TBranchProxyDirector.cxx:85 TBranchProxyDirector.cxx:86 TBranchProxyDirector.cxx:87 TBranchProxyDirector.cxx:88 TBranchProxyDirector.cxx:89 TBranchProxyDirector.cxx:90 TBranchProxyDirector.cxx:91 TBranchProxyDirector.cxx:92 TBranchProxyDirector.cxx:93 TBranchProxyDirector.cxx:94 TBranchProxyDirector.cxx:95 TBranchProxyDirector.cxx:96 TBranchProxyDirector.cxx:97 TBranchProxyDirector.cxx:98 TBranchProxyDirector.cxx:99 TBranchProxyDirector.cxx:100 TBranchProxyDirector.cxx:101 TBranchProxyDirector.cxx:102 TBranchProxyDirector.cxx:103 TBranchProxyDirector.cxx:104 TBranchProxyDirector.cxx:105 TBranchProxyDirector.cxx:106 TBranchProxyDirector.cxx:107