4 #ifndef ROOT_TSchemaRuleSet
5 #define ROOT_TSchemaRuleSet
20 class TSchemaRuleSet:
public TObject
24 class TMatches:
public std::vector<const TSchemaRule*>
27 operator bool() {
return !empty(); }
28 const TSchemaRule* GetRuleWithSource(
const TString& name )
const;
29 const TSchemaRule* GetRuleWithTarget(
const TString& name )
const;
30 Bool_t HasRuleWithSource(
const TString& name, Bool_t needingAlloc )
const;
31 Bool_t HasRuleWithTarget(
const TString& name, Bool_t willset )
const;
34 enum EConsistencyCheck {
41 virtual ~TSchemaRuleSet();
43 Bool_t AddRule( TSchemaRule* rule, EConsistencyCheck checkConsistency = kCheckAll, TString *errmsg = 0 );
44 Bool_t AddRules( TSchemaRuleSet* rules, EConsistencyCheck checkConsistency = kCheckAll, TString *errmsg = 0);
45 Bool_t HasRuleWithSourceClass(
const TString &source)
const;
46 const TMatches FindRules(
const TString &source )
const;
47 const TMatches FindRules(
const TString &source, Int_t version )
const;
48 const TMatches FindRules(
const TString &source, UInt_t checksum )
const;
49 const TMatches FindRules(
const TString &source, Int_t version, UInt_t checksum )
const;
51 UInt_t GetClassCheckSum()
const;
52 TString GetClassName()
const;
53 Int_t GetClassVersion()
const;
54 const TObjArray* GetRules()
const;
55 const TObjArray* GetPersistentRules()
const;
56 void RemoveRule( TSchemaRule* rule );
57 void RemoveRules( TObjArray* rules );
58 void SetClass( TClass* cls );
60 void ls(Option_t *option=
"")
const;
61 void AsString(TString &out)
const;
63 ClassDef( TSchemaRuleSet, 1 )
66 TObjArray* fPersistentRules;
67 TObjArray* fRemainingRules;
78 #endif // ROOT_TSchemaRuleSet