11 #ifndef EVIO_6_0_BASESTRUCTURE_H
12 #define EVIO_6_0_BASESTRUCTURE_H
23 #include <type_traits>
55 typedef typename std::vector<R>::iterator KidIter;
62 std::stack<std::pair<KidIter, KidIter>>
stack;
75 if (!node->children.empty()) {
76 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
88 return this == &other;
96 return this != &other;
104 if (
isEnd)
return *
this;
116 auto &topPair =
stack.top();
118 auto &curIter = topPair.first;
120 auto &endIter = topPair.second;
122 auto &node = *curIter;
125 if (curIter - (endIter - 1) == 0) {
133 if (!node->children.empty()) {
135 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
148 if (
isEnd)
return *
this;
157 auto &topPair =
stack.top();
159 auto &curIter = topPair.first;
161 auto &endIter = topPair.second;
163 auto &node = *curIter;
166 if (curIter - (endIter - 1) == 0) {
174 if (!node->children.empty()) {
176 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
194 typedef typename std::vector<R>::iterator
KidIter;
202 std::queue<std::pair<KidIter, KidIter>>
que;
215 if (!node->children.empty()) {
216 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
227 return this == &other;
234 return this != &other;
258 auto &topPair =
que.front();
260 auto &curIter = topPair.first;
262 auto &endIter = topPair.second;
264 auto &node = *curIter;
267 if (curIter - (endIter - 1) == 0) {
275 if (!node->children.empty()) {
277 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
301 auto &topPair =
que.front();
303 auto &curIter = topPair.first;
305 auto &endIter = topPair.second;
307 auto &node = *curIter;
310 if (curIter - (endIter - 1) == 0) {
318 if (!node->children.empty()) {
320 std::pair<KidIter, KidIter> p(node->children.begin(), node->children.end());
368 typedef std::shared_ptr<BaseStructure>
pointer;
407 std::shared_ptr<BaseStructure>
parent =
nullptr;
410 std::vector<std::shared_ptr<BaseStructure>>
children;
417 std::shared_ptr<BaseStructure>
getThis() {
return shared_from_this();}
418 std::shared_ptr<const BaseStructure>
getThisConst()
const {
return shared_from_this();}
422 void setParent(
const std::shared_ptr<BaseStructure> &newParent);
426 void insert(
const std::shared_ptr<BaseStructure> newChild,
size_t childIndex);
427 void remove(
size_t childIndex);
429 std::shared_ptr<BaseStructure>
getParent()
const;
430 std::vector<std::shared_ptr<BaseStructure>>
getChildren()
const;
431 std::shared_ptr<BaseStructure>
getChildAt(
size_t index)
const;
434 ssize_t
getIndex(
const std::shared_ptr<BaseStructure> aChild);
446 void remove(
const std::shared_ptr<BaseStructure> aChild);
448 void add(std::shared_ptr<BaseStructure> newChild);
454 bool isNodeAncestor(
const std::shared_ptr<BaseStructure> anotherNode)
const;
456 std::shared_ptr<BaseStructure>
getSharedAncestor(std::shared_ptr<BaseStructure> aNode);
460 std::vector<std::shared_ptr<BaseStructure>>
getPath();
464 std::vector<std::shared_ptr<BaseStructure>>
getPathToRoot(
const std::shared_ptr<BaseStructure> & aNode,
int depth)
const;
468 std::shared_ptr<BaseStructure>
getRoot();
477 bool isNodeChild(
const std::shared_ptr<BaseStructure> aNode)
const;
480 std::shared_ptr<BaseStructure>
getChildAfter(
const std::shared_ptr<BaseStructure> aChild);
481 std::shared_ptr<BaseStructure>
getChildBefore(
const std::shared_ptr<BaseStructure> aChild);
487 bool isNodeSibling(
const std::shared_ptr<BaseStructure> anotherNode)
const;
509 std::shared_ptr<IEvioFilter> filter);
511 std::vector<std::shared_ptr<BaseStructure>> & vec);
513 void visitAllDescendants(std::shared_ptr<BaseStructure> structure,
514 std::shared_ptr<IEvioListener> listener,
515 std::shared_ptr<IEvioFilter> filter);
527 std::shared_ptr<BaseStructureHeader>
header;
609 static const uint8_t padValues[3];
612 static const uint32_t padCount[4];
625 void copyData(std::shared_ptr<BaseStructure>
const & other);
630 explicit BaseStructure(std::shared_ptr<BaseStructureHeader> head);
650 virtual std::string
toString()
const;
651 std::string
treeToString(std::string
const & indent)
const;
653 std::shared_ptr<BaseStructureHeader>
getHeader()
const;
699 std::vector<uint8_t> & bytes);
702 std::vector<std::string> & strData);
704 size_t offset,
size_t maxLength,
705 std::vector<std::string> & strData);
707 std::vector<std::string> & strData);
709 size_t pos,
size_t length,
710 std::vector<std::string> & strData);
727 static void stringBuilderToStrings(std::string
const & strData,
bool onlyGoodChars,
728 std::vector<std::string> & strings);
737 #endif //EVIO_6_0_BASESTRUCTURE_H
std::vector< std::shared_ptr< BaseStructure > >::iterator childrenEnd()
Creates and returns a forward-order end iterator of this node's children.
Definition: BaseStructure.cpp:535
size_t writeQuick(uint8_t *dest)
Write myself out as evio format data in the data's current byte order given by getByteOrder() at the ...
Definition: BaseStructure.cpp:2723
std::vector< signed char > & getCharData()
Gets the raw data as an signed char vector, if the contents type as indicated by the header is approp...
Definition: BaseStructure.cpp:1971
std::shared_ptr< BaseStructure > getChildAt(size_t index) const
Returns the child at the specified index in this node's child vector.
Definition: BaseStructure.cpp:465
This class is copied from one of the same name in the Java programming language.
Definition: ByteBuffer.h:42
R operator*() const
Definition: BaseStructure.h:81
bool allowsChildren
True if the node is able to have children.
Definition: BaseStructure.h:413
std::vector< float > floatData
Used if raw data should be interpreted as floats.
Definition: BaseStructure.h:554
uint32_t getDepth()
Returns the depth of the tree rooted at this node – the longest distance from this node to a leaf...
Definition: BaseStructure.cpp:780
std::queue< std::pair< KidIter, KidIter > > que
Definition: BaseStructure.h:202
uint32_t unpackRawBytesToStrings()
Extract string data from rawBytes array.
Definition: BaseStructure.cpp:2419
bool isEndIter()
Definition: BaseStructure.h:237
std::shared_ptr< BaseStructure > getNextSibling()
Returns the next sibling of this node in the parent's children vector.
Definition: BaseStructure.cpp:1169
std::vector< double > doubleData
Used if raw data should be interpreted as doubles.
Definition: BaseStructure.h:551
nodeBreadthIterator< std::shared_ptr< BaseStructure > > breadth_iterator
Definition: BaseStructure.h:371
void setParent(const std::shared_ptr< BaseStructure > &newParent)
Sets this node's parent to newParent but does not change the parent's child array.
Definition: BaseStructure.cpp:370
std::vector< std::shared_ptr< BaseStructure > > children
Array of children, may be null if this node has no children.
Definition: BaseStructure.h:410
ssize_t getLeafCount()
Returns the total number of leaves that are descendants of this node.
Definition: BaseStructure.cpp:1359
std::shared_ptr< BaseStructure > getThis()
Definition: BaseStructure.h:417
std::shared_ptr< BaseStructure > getRoot()
Returns the root of the tree that contains this node.
Definition: BaseStructure.cpp:870
std::vector< uint32_t > uintData
Used if raw data should be interpreted as unsigned ints.
Definition: BaseStructure.h:542
Definition: BaseStructure.h:52
std::vector< int64_t > longData
Used if raw data should be interpreted as longs.
Definition: BaseStructure.h:545
virtual StructureType getStructureType() const
Definition: BaseStructure.h:642
This is the base class for all evio structures: Banks, Segments, and TagSegments. ...
Definition: BaseStructure.h:347
std::shared_ptr< BaseStructure > getPreviousNode()
Returns the node that precedes this node in a preorder traversal of this node's tree (return left nod...
Definition: BaseStructure.cpp:946
void updateLongData()
If data in this structure was changed by modifying the vector returned from getLongData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3092
bool isEnd
Definition: BaseStructure.h:208
std::vector< std::string > stringList
Used if raw data should be interpreted as a string.
Definition: BaseStructure.h:575
R operator*() const
Definition: BaseStructure.h:221
R currentNode
Definition: BaseStructure.h:205
void updateULongData()
If data in this structure was changed by modifying the vector returned from getULongData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3129
bool isEnd
Definition: BaseStructure.h:68
void transform(std::shared_ptr< BaseStructure > const &structure)
This method does a partial copy and is designed to help convert between banks, segments,and tagsegments in the StructureTransformer class (hence the name "transform").
Definition: BaseStructure.cpp:165
void setAllowsChildren(bool allows)
Determines whether or not this node is allowed to have children.
Definition: BaseStructure.cpp:547
uint32_t getTotalBytes() const
Get the length of this structure in bytes, including the header.
Definition: BaseStructure.cpp:1668
void removeFromParent()
Removes the subtree rooted at this node from the tree, giving this node a null parent.
Definition: BaseStructure.cpp:575
std::vector< R >::iterator KidIter
Definition: BaseStructure.h:194
std::string treeToString(std::string const &indent) const
Recursive method to obtain a string representation of the entire tree structure rooted at this struct...
Definition: BaseStructure.cpp:1579
void setLengthsUpToDate(bool lengthsUpToDate)
Set whether the lengths of all header fields for this structure and all it descendants are up to date...
Definition: BaseStructure.cpp:2625
std::vector< unsigned char > ucharData
Used if raw data should be interpreted as unsigned chars.
Definition: BaseStructure.h:570
std::shared_ptr< BaseStructure > getFirstChild() const
Returns this node's first child.
Definition: BaseStructure.cpp:1007
Numerical values associated with endian byte order.
Definition: ByteOrder.h:53
void getMatchingStructures(std::shared_ptr< IEvioFilter > filter, std::vector< std::shared_ptr< BaseStructure >> &vec)
Visit all the descendant structures, and collect those that pass a filter.
Definition: BaseStructure.cpp:1452
std::vector< uint16_t > ushortData
Used if raw data should be interpreted as unsigned shorts.
Definition: BaseStructure.h:536
std::vector< float > & getFloatData()
Gets the raw data as a float vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1889
void updateUIntData()
If data in this structure was changed by modifying the vector returned from getUIntData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:2953
std::vector< std::shared_ptr< BaseStructure > > getPath()
Returns the path from the root, to get to this node.
Definition: BaseStructure.cpp:822
void visitAllStructures(std::shared_ptr< IEvioListener > listener)
Visit all the structures in this structure (including the structure itself – which is considered its ...
Definition: BaseStructure.cpp:1392
void setByteOrder(ByteOrder const &order)
Set the byte order of this data.
Definition: BaseStructure.cpp:1518
std::vector< uint64_t > & getULongData()
Gets the raw data as an uint64_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1859
void updateCompositeData()
If data in this structure was changed by modifying the vector returned from getCompositeData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3333
void updateUShortData()
If data in this structure was changed by modifying the vector returned from getUShortData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3042
bool getAllowsChildren() const
Returns true if this node is allowed to have children.
Definition: BaseStructure.cpp:562
std::vector< std::shared_ptr< BaseStructure > > getPathToRoot(const std::shared_ptr< BaseStructure > &aNode, int depth) const
Builds the parents of node up to and including the root node, where the original node is the last ele...
Definition: BaseStructure.cpp:839
size_t getSiblingCount() const
Returns the number of siblings of this node.
Definition: BaseStructure.cpp:1145
bool operator!=(const nodeIterator &other) const
Definition: BaseStructure.h:91
iterator end()
Get the end depth-first iterator.
Definition: BaseStructure.h:391
std::shared_ptr< BaseStructure > getLastChild() const
Returns this node's last child.
Definition: BaseStructure.cpp:1023
bool isNodeSibling(const std::shared_ptr< BaseStructure > anotherNode) const
Returns true if anotherNode is a sibling of (has the same parent as) this node.
Definition: BaseStructure.cpp:1115
std::shared_ptr< BaseStructure > value_type
Definition: BaseStructure.h:366
This class is used for creating and manipulating events.
Definition: EventBuilder.h:43
bool isNodeDescendant(std::shared_ptr< BaseStructure > anotherNode)
Returns true if anotherNode is a descendant of this node – if it is this node, one of this node's chi...
Definition: BaseStructure.cpp:676
std::shared_ptr< BaseStructureHeader > getHeader() const
Return the header for this structure.
Definition: BaseStructure.cpp:1602
size_t numberDataItems
The number of stored data items like number of banks, ints, floats, etc.
Definition: BaseStructure.h:598
void updateShortData()
If data in this structure was changed by modifying the vector returned from getShortData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:2989
std::shared_ptr< BaseStructure > getNextLeaf()
Returns the leaf after this node or null if this node is the last leaf in the tree.
Definition: BaseStructure.cpp:1298
std::shared_ptr< BaseStructure > parent
This node's parent, or null if this node has no parent.
Definition: BaseStructure.h:407
ByteOrder getByteOrder()
What is the byte order of this data?
Definition: BaseStructure.cpp:1510
static const StructureType STRUCT_UNKNOWN32
Unknown data type.
Definition: StructureType.h:38
void updateFloatData()
If data in this structure was changed by modifying the vector returned from getFloatData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3238
static uint32_t stringsToRawSize(std::vector< std::string > const &strings)
This method returns the number of bytes in a raw evio format of the given string vector, not including header.
Definition: BaseStructure.cpp:2061
std::vector< std::shared_ptr< CompositeData > > & getCompositeData()
Gets the composite data as an vector of CompositeData objects, if the content type as indicated by th...
Definition: BaseStructure.cpp:1950
bool isNodeAncestor(const std::shared_ptr< BaseStructure > anotherNode) const
Returns true if anotherNode is an ancestor of this node – if it is this node, this node's parent...
Definition: BaseStructure.cpp:646
size_t getChildCount() const
Returns the number of children of this node.
Definition: BaseStructure.cpp:475
std::shared_ptr< BaseStructure > getChildBefore(const std::shared_ptr< BaseStructure > aChild)
Returns the child in this node's child vector that immediately precedes aChild, which must be a child...
Definition: BaseStructure.cpp:1080
std::shared_ptr< BaseStructure > reference
Definition: BaseStructure.h:367
std::vector< int16_t > shortData
Used if raw data should be interpreted as shorts.
Definition: BaseStructure.h:533
static uint32_t stringToRawSize(const std::string &str)
This method returns the number of bytes in a raw evio format of the given string vector, not including header.
Definition: BaseStructure.cpp:2091
virtual std::string toString() const
Obtain a string representation of the structure.
Definition: BaseStructure.cpp:1532
std::vector< uint8_t > & getRawBytes()
Get the raw data of the structure.
Definition: BaseStructure.cpp:1675
bool lengthsUpToDate
Keep track of whether header length data is up-to-date or not.
Definition: BaseStructure.h:604
R currentNode
Definition: BaseStructure.h:65
bool isLeaf() const
Returns true if this node has no children.
Definition: BaseStructure.cpp:1234
std::input_iterator_tag iterator_category
Definition: BaseStructure.h:364
breadth_iterator bend()
Get the end breadth-first iterator.
Definition: BaseStructure.h:402
std::shared_ptr< BaseStructure > getNextNode()
Returns the node that follows this node in a preorder traversal of this node's tree (return left node...
Definition: BaseStructure.cpp:903
std::vector< uint8_t > rawBytes
The raw data of the structure.
Definition: BaseStructure.h:530
uint32_t dataLength()
Compute the dataLength in 32-bit words.
Definition: BaseStructure.cpp:2559
std::shared_ptr< BaseStructureHeader > header
Holds the header of the bank as a shared pointer.
Definition: BaseStructure.h:527
void updateDoubleData()
If data in this structure was changed by modifying the vector returned from getDoubleData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3275
nodeBreadthIterator(R &node, bool isEnd)
Definition: BaseStructure.h:213
nodeBreadthIterator operator++()
Definition: BaseStructure.h:288
void setRawBytes(uint8_t *bytes, uint32_t len)
Set the data for the structure.
Definition: BaseStructure.cpp:1683
std::vector< int16_t > & getShortData()
Gets the raw data as an int16_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1704
std::shared_ptr< BaseStructure > getLastLeaf()
Finds and returns the last leaf that is a descendant of this node – either this node or its last chil...
Definition: BaseStructure.cpp:1268
bool isRoot() const
Returns true if this node is the root of the tree.
Definition: BaseStructure.cpp:890
bool isNodeChild(const std::shared_ptr< BaseStructure > aNode) const
Returns true if aNode is a child of this node.
Definition: BaseStructure.cpp:980
iterator begin()
Get the beginning depth-first iterator.
Definition: BaseStructure.h:386
std::shared_ptr< const BaseStructure > getThisConst() const
Definition: BaseStructure.h:418
ByteOrder byteOrder
Endianness of the raw data if appropriate.
Definition: BaseStructure.h:601
size_t write(ByteBuffer &dest)
Write myself out into a byte buffer with fastest algorithm I could find.
Definition: BaseStructure.cpp:2887
std::vector< int64_t > & getLongData()
Gets the raw data as an int64_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1829
nodeIterator(R &node, bool isEnd)
Definition: BaseStructure.h:73
std::shared_ptr< BaseStructure > getFirstLeaf()
Finds and returns the first leaf that is a descendant of this node – either this node or its first ch...
Definition: BaseStructure.cpp:1247
std::vector< std::shared_ptr< BaseStructure > >::iterator childrenBegin()
Creates and returns a forward-order begin iterator of this node's children.
Definition: BaseStructure.cpp:524
std::vector< std::shared_ptr< BaseStructure > > getChildren() const
Get the children of this structure.
Definition: BaseStructure.cpp:455
uint32_t getLevel() const
Returns the number of levels above this node – the distance from the root to this node...
Definition: BaseStructure.cpp:801
const nodeIterator & operator++()
Definition: BaseStructure.h:146
std::shared_ptr< BaseStructure > getPreviousLeaf()
Returns the leaf before this node or null if this node is the first leaf in the tree.
Definition: BaseStructure.cpp:1333
Definition: BaseStructure.h:189
Creates an object that controls the parsing of events.
Definition: EventParser.h:55
std::ptrdiff_t difference_type
Definition: BaseStructure.h:363
std::stack< std::pair< KidIter, KidIter > > stack
Definition: BaseStructure.h:62
std::vector< std::string > & getStringData()
Gets the raw data (ascii) as an vector of string objects, if the contents type as indicated by the he...
Definition: BaseStructure.cpp:2035
uint32_t getNumberDataItems()
Get the number of stored data items like number of banks, ints, floats, etc.
Definition: BaseStructure.cpp:1614
std::vector< uint16_t > & getUShortData()
Gets the raw data as an uint16_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1739
void stringsToRawBytes()
This method transforms the internal vector of strings into internal rawBytes vector of evio format da...
Definition: BaseStructure.cpp:2167
bool getLengthsUpToDate() const
Get whether the lengths of all header fields for this structure and all it descendants are up to date...
Definition: BaseStructure.cpp:2615
uint32_t setAllHeaderLengths()
Compute and set length of all header fields for this structure and all its descendants.
Definition: BaseStructure.cpp:2644
bool operator!=(const nodeBreadthIterator &other) const
Definition: BaseStructure.h:230
size_t size_type
Definition: BaseStructure.h:362
nodeIterator< std::shared_ptr< BaseStructure > > iterator
Definition: BaseStructure.h:370
std::vector< uint32_t > & getUIntData()
Gets the raw data as an uint32_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1799
std::shared_ptr< BaseStructure > getParent() const
Returns this node's parent or null if this node has no parent.
Definition: BaseStructure.cpp:448
std::vector< uint64_t > ulongData
Used if raw data should be interpreted as unsigned longs.
Definition: BaseStructure.h:548
bool isNodeRelated(std::shared_ptr< BaseStructure > aNode)
Returns true if and only if aNode is in the same tree as this node.
Definition: BaseStructure.cpp:764
ssize_t getIndex(const std::shared_ptr< BaseStructure > aChild)
Returns the index of the specified child in this node's child vector.
Definition: BaseStructure.cpp:491
bool operator==(const nodeIterator &other) const
Definition: BaseStructure.h:83
bool needSwap() const
Is a byte swap required (i.e.
Definition: BaseStructure.cpp:1525
const nodeIterator operator++(int)
Definition: BaseStructure.h:102
Numerical values associated with evio structure types.
Definition: StructureType.h:34
void add(std::shared_ptr< BaseStructure > newChild)
Removes newChild from its parent and makes it a child of this node by adding it to the end of this no...
Definition: BaseStructure.cpp:620
std::shared_ptr< BaseStructure > getChildAfter(const std::shared_ptr< BaseStructure > aChild)
Returns the child in this node's child vector that immediately follows aChild, which must be a child ...
Definition: BaseStructure.cpp:1047
std::shared_ptr< BaseStructure > getPreviousSibling()
Returns the previous sibling of this node in the parent's children vector.
Definition: BaseStructure.cpp:1199
bool isContainer() const
Checks whether this structure is a container, i.e.
Definition: BaseStructure.cpp:2545
void updateStringData()
If data in this structure was changed by modifying the vector returned from getStringData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3312
BaseStructure()
Constructor.
Definition: BaseStructure.cpp:28
breadth_iterator bbegin()
Get the beginning breadth-first iterator.
Definition: BaseStructure.h:397
bool operator==(const nodeBreadthIterator &other) const
Definition: BaseStructure.h:223
std::shared_ptr< BaseStructure > pointer
Definition: BaseStructure.h:368
std::shared_ptr< BaseStructure > getSharedAncestor(std::shared_ptr< BaseStructure > aNode)
Returns the nearest common ancestor to this node and aNode.
Definition: BaseStructure.cpp:698
std::vector< int32_t > intData
Used if raw data should be interpreted as ints.
Definition: BaseStructure.h:539
int stringEnd
Keep track of end of the last string added to stringData (including null but not padding).
Definition: BaseStructure.h:581
bool badStringFormat
True if char data has non-ascii or non-printable characters, or has too little data to be in proper f...
Definition: BaseStructure.h:587
nodeBreadthIterator operator++(int)
Definition: BaseStructure.h:242
std::vector< double > & getDoubleData()
Gets the raw data as a double vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1919
void removeAllChildren()
Removes all of this node's children, setting their parents to null.
Definition: BaseStructure.cpp:603
void updateIntData()
If data in this structure was changed by modifying the vector returned from getIntData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:2912
bool isEndIter()
Definition: BaseStructure.h:99
std::vector< int32_t > & getIntData()
Gets the raw data as an int32_t vector if the content type as indicated by the header is appropriate...
Definition: BaseStructure.cpp:1769
void updateUCharData()
If data in this structure was changed by modifying the vector returned from getUCharData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3202
void insert(const std::shared_ptr< BaseStructure > newChild, size_t childIndex)
Removes newChild from its present parent (if it has a parent), sets the child's parent to this node...
Definition: BaseStructure.cpp:388
void updateCharData()
If data in this structure was changed by modifying the vector returned from getCharData(), then this method needs to be called in order to make this object internally consistent.
Definition: BaseStructure.cpp:3165
std::vector< signed char > charData
Used if raw data should be interpreted as signed chars.
Definition: BaseStructure.h:567
static const ByteOrder ENDIAN_LOCAL
Local host's byte order.
Definition: ByteOrder.h:61
std::vector< std::shared_ptr< CompositeData > > compositeData
Used if raw data should be interpreted as composite type.
Definition: BaseStructure.h:557
This is a class of interest to the user.
Definition: EvioReaderV4.h:58
This is a class of interest to the user.
Definition: EvioReader.h:52
std::vector< unsigned char > & getUCharData()
Gets the raw data as an unsigned char vector, if the contents type as indicated by the header is appr...
Definition: BaseStructure.cpp:1995