A mirror event object. More...
Public Member Functions | |
MirrorObject (const std::string &branch_name, Reader &reader, Writer &writer) | |
Construct this mirror object and any of its (data or object) children. | |
void | copy (unsigned long int i_entry, unsigned long int n) |
Copy the n entries starting from i_entry. More... | |
Private Attributes | |
std::unique_ptr< BaseBranch > | data_ |
handle to the atomic data type once we get down to that point | |
std::unique_ptr< BaseBranch > | size_member_ |
handle to the size member of this object (if it exists) | |
std::vector< std::unique_ptr< MirrorObject > > | obj_members_ |
list of sub-objects within this object | |
unsigned long int | last_entry_ {0} |
the last entry that was copied | |
A mirror event object.
This type of event object is merely present to "reflect" (pun intended) the recursive nature of the Branch pattern without knowledge of any user classes. We need this so we can effectively copy event objects that are not accessed during processing from the input to the output file. (The choice on whether to copy or not copy these files is handled by Event).
void hdtree::Reader::MirrorObject::copy | ( | unsigned long int | i_entry, |
unsigned long int | n | ||
) |
Copy the n entries starting from i_entry.
if there is a member determining the size of each entry, we need to follow its lead