29 fAllRules( nullptr ), fVersion(-3), fCheckSum( 0 )
54 std::cout <<
"TSchemaRuleSet for " <<
fClassName <<
":\n";
58 while ((
object = next())) {
90 if( !
rule->IsValid() )
98 if(
rule->GetEmbed() )
119 while( (obj =
titer.Next()) ) {
129 found =
info->GetElements()->FindObject(str->GetString());
134 errmsg->Form(
"the target member (%s) is unknown",str->GetString().Data());
155 if(
rule->Conflicts(
r ) ) {
161 *
errmsg =
"it conflicts with one of the other rules";
167 *
errmsg =
"The existing rule is:\n ";
169 *
errmsg +=
"\nand the ignored rule is:\n ";
181 if(
rule->GetEmbed() )
210 while( (obj = it.
Next()) ) {
221 if (
src &&
src->GetCollectionProxy() &&
224 if (
proxy->GetValueClass() ==
nullptr) {
232 if (
src &&
src->GetCollectionProxy() &&
247 Error(
"HasRuleWithSourceClass",
"Can not find the TClass for %s when matching with %s\n",
source.Data(),
fClass->
GetName());
253 Error(
"HasRuleWithSourceClass",
"Can not find the StreamerInfo for %s when matching with %s\n",
source.Data(),
fClass->
GetName());
257 Error(
"HasRuleWithSourceClass",
"Can not find the StreamerInfo for target class %s\n",
fClass->
GetName());
260 for(
int i = 0 ; i<2 ; ++i) {
303 while( (obj = it.
Next()) ) {
318 if (
src &&
src->GetCollectionProxy()) {
320 if (
proxy->GetValueClass() == 0) {
342 while( (obj = it.
Next()) ) {
362 while( (obj = it.
Next()) ) {
382 while( (obj = it.
Next()) ) {
454 while( (obj = it.
Next()) ) {
514 if (
rule->GetReadFunctionPointer() ||
rule->GetReadRawFunctionPointer()) {
532 for(
auto rule : *
this) {
548 if (
rule->GetReadFunctionPointer() ||
rule->GetReadRawFunctionPointer()) {
564 if (
R__b.IsReading()) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
const TSchemaRule * GetRuleWithSource(const TString &name) const
Return the rule that has 'name' as a source.
Bool_t HasRuleWithSource(const TString &name, Bool_t needingAlloc) const
Return true if the set of rules has at least one rule that has the data member named 'name' as a sour...
Bool_t HasRuleWithTarget(const TString &name, Bool_t willset) const
Return true if the set of rules has at least one rule that has the data member named 'name' as a targ...
const TSchemaRule * GetRuleWithTarget(const TString &name) const
Return the rule that has 'name' as a target.
void Streamer(TBuffer &) override
Stream an object of class ROOT::TSchemaRuleSet.
TObjArray * fRemainingRules
TClassRef fClass
Array of all rules.
TString fClassName
Target class pointer (for consistency checking)
void RemoveRule(TSchemaRule *rule)
Remove given rule from the set - the rule is not being deleted!
const TMatches FindRules(const TString &source) const
Return all the rules that are about the given 'source' class.
const TObjArray * GetPersistentRules() const
Bool_t AddRule(TSchemaRule *rule, EConsistencyCheck checkConsistency=kCheckAll, TString *errmsg=nullptr)
The consistency check always fails if the TClass object was not set! if checkConsistency is: kNoCheck...
void AsString(TString &out) const
Fill the string 'out' with the string representation of the rule.
UInt_t GetClassCheckSum() const
Bool_t AddRules(TSchemaRuleSet *rules, EConsistencyCheck checkConsistency=kCheckAll, TString *errmsg=nullptr)
void ls(Option_t *option="") const override
The ls function lists the contents of a class on stdout.
Int_t GetClassVersion() const
TString GetClassName() const
TObjArray * fAllRules
Array of non-persistent rules - just for cleanup purposes - owns the elements.
void SetClass(TClass *cls)
Set the TClass associated with this rule set.
void RemoveRules(TObjArray *rules)
remove given array of rules from the set - the rules are not being deleted!
TObjArray * fPersistentRules
const TObjArray * GetRules() const
Bool_t HasRuleWithSourceClass(const TString &source) const
Return True if we have any rule whose source class is 'source'.
virtual ~TSchemaRuleSet()
Destructor.
TSchemaRuleSet()
Default constructor.
Buffer base class used for serializing objects.
TClass instances represent classes, structs and namespaces in the ROOT type system.
UInt_t GetCheckSum(ECheckSum code=kCurrentCheckSum) const
Call GetCheckSum with validity check.
TDataMember * GetDataMember(const char *datamember) const
Return pointer to datamember object with name "datamember".
TVirtualStreamerInfo * GetCurrentStreamerInfo()
TClass * GetBaseClass(const char *classname)
Return pointer to the base class "classname".
TVirtualStreamerInfo * GetStreamerInfo(Int_t version=0, Bool_t isTransient=kFALSE) const
returns a pointer to the TVirtualStreamerInfo object for version If the object does not exist,...
TVirtualCollectionProxy * GetCollectionProxy() const
Return the proxy describing the collection (if any).
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void AddAll(const TCollection *col)
Add all objects from collection col to this collection.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
const char * GetName() const override
Returns name of object.
Iterator of object array.
TObject * Next() override
Return next object in array. Returns 0 when no more objects in array.
void Clear(Option_t *option="") override
Remove all objects from the array.
TObject * Remove(TObject *obj) override
Remove object from array.
void Add(TObject *obj) override
Collectable string class.
Mother of all ROOT objects.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
Defines a common interface to inspect/change the contents of an object that represents a collection.
virtual Int_t GetProperties() const
Return miscallenous properties of the proxy (see TVirtualCollectionProxy::EProperty)
virtual TClass * GetValueClass() const =0
If the value type is a user-defined class, return a pointer to the TClass representing the value type...
virtual Int_t GetCollectionType() const =0
Return the type of the proxied collection (see enumeration TClassEdit::ESTLType)
virtual Bool_t HasPointers() const =0
Return true if the content is of type 'pointer to'.
Abstract Interface class describing Streamer information for one class.
Special implementation of ROOT::RRangeCast for TCollection, including a check that the cast target ty...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
bool IsStdPair(std::string_view name)