File tree Expand file tree Collapse file tree 3 files changed +12
-5
lines changed Expand file tree Collapse file tree 3 files changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -207,7 +207,7 @@ protected:
207
207
void ReadGlobalImpl (ROOT::NTupleSize_t globalIndex, void *to) final ;
208
208
void ReadInClusterImpl (RNTupleLocalIndex localIndex, void *to) final ;
209
209
210
- void BeforeConnectPageSource (ROOT::Internal::RPageSource &pageSource) final ;
210
+ std::unique_ptr<RFieldBase> BeforeConnectPageSource (ROOT::Internal::RPageSource &pageSource) final ;
211
211
void ReconcileOnDiskField (const RNTupleDescriptor &desc) final ;
212
212
213
213
public:
@@ -262,7 +262,7 @@ protected:
262
262
// Returns the list of seen streamer infos
263
263
ROOT::RExtraTypeInfoDescriptor GetExtraTypeInfo () const final ;
264
264
265
- void BeforeConnectPageSource (ROOT::Internal::RPageSource &source) final ;
265
+ std::unique_ptr<RFieldBase> BeforeConnectPageSource (ROOT::Internal::RPageSource &source) final ;
266
266
void ReconcileOnDiskField (const RNTupleDescriptor &desc) final ;
267
267
268
268
public:
Original file line number Diff line number Diff line change @@ -514,7 +514,11 @@ protected:
514
514
// / Called by ConnectPageSource() before connecting; derived classes may override this as appropriate, e.g.
515
515
// / for the application of I/O rules. In the process, the field at hand or its subfields may be marked as
516
516
// / "artifical", i.e. introduced by schema evolution and not backed by on-disk information.
517
- virtual void BeforeConnectPageSource (ROOT::Internal::RPageSource & /* source */ ) {}
517
+ // / May return a field substitute that fits the on-disk schema as a replacement for the field at hand
518
+ virtual std::unique_ptr<RFieldBase> BeforeConnectPageSource (ROOT::Internal::RPageSource & /* source */ )
519
+ {
520
+ return nullptr ;
521
+ }
518
522
519
523
// / For non-artificial fields, check compatibility of the in-memory field and the on-disk field. In the process,
520
524
// / the field at hand may change its on-disk ID or perform other tasks related to automatic schema evolution.
Original file line number Diff line number Diff line change @@ -440,7 +440,7 @@ void ROOT::RClassField::AddReadCallbacksFromIORule(const TSchemaRule *rule)
440
440
});
441
441
}
442
442
443
- void ROOT::RClassField::BeforeConnectPageSource (ROOT::Internal::RPageSource &pageSource)
443
+ std::unique_ptr<ROOT::RFieldBase> ROOT::RClassField::BeforeConnectPageSource (ROOT::Internal::RPageSource &pageSource)
444
444
{
445
445
std::vector<const TSchemaRule *> rules;
446
446
// On-disk members that are not targeted by an I/O rule; all other sub fields of the in-memory class
@@ -507,6 +507,8 @@ void ROOT::RClassField::BeforeConnectPageSource(ROOT::Internal::RPageSource &pag
507
507
CallSetArtificialOn (*field);
508
508
}
509
509
}
510
+
511
+ return nullptr ;
510
512
}
511
513
512
514
void ROOT::RClassField::ReconcileOnDiskField (const RNTupleDescriptor &desc)
@@ -979,9 +981,10 @@ void ROOT::RStreamerField::GenerateColumns(const ROOT::RNTupleDescriptor &desc)
979
981
GenerateColumnsImpl<ROOT::Internal::RColumnIndex, std::byte>(desc);
980
982
}
981
983
982
- void ROOT::RStreamerField::BeforeConnectPageSource (ROOT::Internal::RPageSource &source)
984
+ std::unique_ptr<ROOT::RFieldBase> ROOT::RStreamerField::BeforeConnectPageSource (ROOT::Internal::RPageSource &source)
983
985
{
984
986
source.RegisterStreamerInfos ();
987
+ return nullptr ;
985
988
}
986
989
987
990
void ROOT::RStreamerField::ReconcileOnDiskField (const RNTupleDescriptor &desc)
You can’t perform that action at this time.
0 commit comments