12 #ifndef ROOT_TStreamerInfoActions 13 #define ROOT_TStreamerInfoActions 48 virtual void Print()
const;
62 virtual void Print()
const;
63 virtual void *GetFirstAddress(
void *start,
const void *end)
const = 0;
118 delete fConfiguration;
123 return fAction(buffer,
object, fConfiguration);
127 return fVecPtrLoopAction(buffer, start_collection, end_collection, fConfiguration);
131 return fLoopAction(buffer, start_collection, end_collection, loopconf, fConfiguration);
138 using TIDs = std::vector<TIDNode>;
146 if (fOwnOnfileObject)
147 delete fOnfileObject;
163 fNestedIDs = std::make_unique<TNestedIDs>(info, offset);
183 template <
typename action_t>
188 fActions.push_back( action );
200 TActionSequence *CreateSubSequence(
const std::vector<Int_t> &element_ids,
size_t offset);
216 if (fOwner)
delete fSequence;
231 return fSequence !=
nullptr;
281 #endif // ROOT_TStreamerInfoActions Describe Streamer information for one class version.
virtual ~TLoopConfiguration()
std::vector< TConfiguredAction > ActionContainer_t
TVirtualStreamerInfo * fInfo
TStreamerInfo form which the action is derived.
virtual void AddToOffset(Int_t delta)
static SequencePtr WriteMemberWiseActionsCollectionCreator(TStreamerInfo *info, TVirtualCollectionProxy *collectionProxy, TClass *)
ActionContainer_t fActions
virtual TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Int_t version)=0
TNestedIDs(TStreamerInfo *info, Int_t offset)
std::vector< TIDNode > TIDs
TLoopConfiguration * fLoopConfig
If this is a bundle of memberwise streaming action, this configures the looping.
virtual TStreamerInfoActions::TActionSequence * GetConversionReadMemberWiseActions(TClass *oldClass, Int_t version)=0
TStreamerInfoActions::TActionSequence * operator->() const
void swap(TDirectoryEntry &e1, TDirectoryEntry &e2) noexcept
void AddAction(action_t action, TConfiguration *conf)
virtual void PrintDebug(TBuffer &buffer, void *object) const
TActionSequence(TVirtualStreamerInfo *info, UInt_t maxdata)
Buffer base class used for serializing objects.
virtual void Print() const
TLoopConfiguration(TVirtualCollectionProxy *proxy)
UInt_t fElemId
Identifier of the TStreamerElement.
static SequencePtr ReadMemberWiseActionsViaProxyGetter(TStreamerInfo *info, TVirtualCollectionProxy *collectionProxy, TClass *)
void AddAction(const TConfiguredAction &action)
static TActionSequence * CreateReadMemberWiseActions(TVirtualStreamerInfo *info, TVirtualCollectionProxy &proxy)
Create the bundle of the actions necessary for the streaming memberwise of the content described by '...
TVirtualCollectionProxy::Next_t Next_t
static SequencePtr ConversionReadMemberWiseActionsViaProxyGetter(TStreamerInfo *info, TVirtualCollectionProxy *collectionProxy, TClass *originalClass)
static SequencePtr WriteMemberWiseActionsCollectionGetter(TStreamerInfo *info, TVirtualCollectionProxy *, TClass *)
#define ClassDef(name, id)
TStreamerInfoActions::TActionSequence & operator*() const
virtual ~TConfiguration()
static SequencePtr WriteMemberWiseActionsGetter(TStreamerInfo *info, TVirtualCollectionProxy *, TClass *)
Int_t(* TStreamerInfoLoopAction_t)(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *conf)
std::unique_ptr< TNestedIDs > fNestedIDs
TObject & operator=(const TObject &rhs)
TObject assignment operator.
Base class of the Configurations for the member wise looping routines.
static SequencePtr ReadMemberWiseActionsCollectionGetter(TStreamerInfo *info, TVirtualCollectionProxy *, TClass *)
SequencePtr(TStreamerInfoActions::TActionSequence *sequence, Bool_t owner)
Int_t(* TStreamerInfoAction_t)(TBuffer &buf, void *obj, const TConfiguration *conf)
static SequencePtr ReadMemberWiseActionsGetter(TStreamerInfo *info, TVirtualCollectionProxy *, TClass *)
TConfiguration(TVirtualStreamerInfo *info, UInt_t id, TCompInfo_t *compinfo, Int_t offset)
virtual TVirtualCollectionProxy * GetCollectionProxy() const
static SequencePtr WriteMemberWiseActionsViaProxyGetter(TStreamerInfo *, TVirtualCollectionProxy *collectionProxy, TClass *)
TStreamerInfo::TCompInfo_t TCompInfo_t
Wrapper around an object and giving indirect access to its content even if the object is not of a cla...
Int_t fOffset
Offset within the object.
static TActionSequence * CreateWriteMemberWiseActions(TVirtualStreamerInfo *info, TVirtualCollectionProxy &proxy)
Create the bundle of the actions necessary for the streaming memberwise of the content described by '...
virtual TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions()=0
The ROOT global object gROOT contains a list of all defined classes.
TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Bool_t forCollection)
static SequencePtr ReadMemberWiseActionsCollectionCreator(TStreamerInfo *info, TVirtualCollectionProxy *collectionProxy, TClass *)
Int_t(* TStreamerInfoVecPtrLoopAction_t)(TBuffer &buf, void *iter, const void *end, const TConfiguration *conf)
Mother of all ROOT objects.
TConfiguration(TVirtualStreamerInfo *info, UInt_t id, TCompInfo_t *compinfo, Int_t offset, UInt_t length)
SequencePtr(*)(TStreamerInfo *info, TVirtualCollectionProxy *collectionProxy, TClass *originalClass) SequenceGetter_t
Int_t GetClassVersion() const
virtual TConfiguration * Copy()
void *(* Next_t)(void *iter, const void *end)
Abstract Interface class describing Streamer information for one class.
Base class of the Configurations.
UInt_t fLength
Number of element in a fixed length array.
TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions(Bool_t forCollection)
TIDNode(TStreamerInfo *info, Int_t offset)
TVirtualStreamerInfo * fStreamerInfo
StreamerInfo used to derive these actions.
TCompInfo_t * fCompInfo
Access to compiled information (for legacy code)