| #include "KanBranchOwner.hh" |
KanBranchOwner
class description - source file - inheritance tree (.pdf)
private:
KanBranchOwner(const KanBranchOwner&)
KanBranchOwner& operator=(const KanBranchOwner&)
protected:
void addBranchObj(const char* subBranchName, KanBranchHolder& obj)
void clearOwnedBranches()
virtual Bool_t fillDataPointers(KanEventReader& eR)
virtual Bool_t fillDataReadRefs(KanEventReader& eR)
virtual Bool_t fillDataWriteRefs(KanEventWriter& eW)
virtual Bool_t flushData(KanEventReader& eR)
void getSubBranchPairs(KanBranchOwner::BranchNameList& pairList) const
virtual Int_t readBranches(KanEventReader&)
virtual void resetData(Dna::Scope scope = Dna::Event)
virtual Int_t setReadBranches(KanTreeBase& tree, const char* name)
virtual Int_t setWriteBranches(KanTreeBase& tree, const char* branchName, Bool_t replace = kFALSE, Int_t bufSize = 32*Kan::kiloByte(), Int_t split = 0)
virtual Bool_t syncData(KanEventWriter& eW)
public:
KanBranchOwner()
virtual ~KanBranchOwner()
static KanBranch* buildBranch(KanBranchHolder& holder)
static KanPersistable* getPersistableAndScope(KanBranchOwner::BranchNameListIter& itr, Dna::Scope& scope)
void getSubBranchNames(KanBranchOwner::stringList& nameList) const
static void setBranch(KanBranchHolder& holder, KanBranch& branch)
private:
list<pair<string,KanBranchHolder*>,allocator<pair<string,KanBranchHolder*> > > _branchObjects ! The Owned BranchObjects
UShort_t _tid ! The id of the tree these are on
Base Class For Classes that own KanBranches
Sub-branches are declared like this:
KanCache<XxxDataObjK> branchCache;
addBranchObj("subBranchSuffix",branchCache);
Then calling any function will pass the call along to each of the
sub-branches
KanPersistable* getPersistableAndScope( BranchNameList::iterator& itr , Dna::Scope& scope )
Extract information from an iterator over the BranchNameList
void setBranch(KanBranchHolder& holder, KanBranch& branch)
Insert a KanBranch into a Holder
KanBranch* buildBranch(KanBranchHolder& holder)
Call the KanBranchHolder::build() function to build the correct type of branch
This is used on write to build a branch of the specified type.
On read the KanBranch object it build by ROOT-io
KanBranchOwner() // Default c'tor
~KanBranchOwner()
d'tor
void getSubBranchNames(std::list<std::string>& nameList) const
Int_t setWriteBranches(KanTreeBase& tree, const char* branchName,
Bool_t replace,
Int_t bufSize, Int_t split)
Build all of the owned branches on a KanTreeBase
Returns the number of branches made
Int_t setReadBranches(KanTreeBase& tree, const char* name)
Attach all of the owned branches to a KanTreeBase
Returns the number of branches attached
Int_t readBranches(KanEventReader& eR)
Read all of the owned branches for the current event
Returns the number of bytes read.
void addBranchObj(const char* subBranchName, KanBranchHolder& obj )
Add a Branch to this set
The name of the sub-branch will be
"MasterBranchName_subBranchNane" -> if Master exists
"subBranchName" -> otherwise
Bool_t fillDataWriteRefs (KanEventWriter& eW)
Call fillWriteRefs on all the owned branches
Return the .AND. of all the calls
Bool_t fillDataReadRefs (KanEventReader& eR)
Call fillReadRefs on all the owned branches
Return the .AND. of all the calls
Bool_t fillDataPointers (KanEventReader& eR)
Call fillPointers on all the owned branches
Return the .AND. of all the calls
Bool_t syncData(KanEventWriter& eW)
Call sync on all the owned branches
Return the .AND. of all the calls
void resetData(Dna::Scope scope)
Call reset on all the owned branches
Bool_t flushData(KanEventReader& eR)
Call flush on all the owned branches
Return the .AND. of all the calls
Inline Functions
void clearOwnedBranches()
void getSubBranchPairs(KanBranchOwner::BranchNameList& pairList) const
KanBranchOwner KanBranchOwner(const KanBranchOwner&)
KanBranchOwner& operator=(const KanBranchOwner&)
Author: E. Charles
Last update: KanBranchOwner.cc,v 1.19 2004/08/06 06:12:57 bartoldu Exp $
Copyright (C) 2003 LBNL
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.
|