Update TBranchElement::Unroll to no longer split a base class
that can not be split (i.e. respect the information returned
by TStreamerElement::CannotSplit (and thus TClass::CanSplit).
Add the ability to explicitly forbid (or allow) the splitting of a class
(TClass::SetSplit) so that user can inforce the use of a
custom streamer in all possible split cases.
This disabling is currently _not_ done automatically for
backward compatibility reasons and because
a) Without TClass::SetCanSplit there was no way to
force the splitting (short of setting the split level lower)
b) Some classes still requires a custom streamer solely to
read older data files (for example for file written before
the advent of StreamerInfo) and are such not necessary to
be used when writting (and schema evolution rules can not
yet be used in this case).
|