Lines Matching +full:child +full:- +full:nodes

21  * byte2: integer length [0-8]]
40 * @param[in] name - property name.
55 * @param[in] dictionaries - available dictionaries for encoding.
56 * @param[in] parentDictionary - dictionary used for the parent of this node.
57 * @param[in] nodeName - name of the interested node. Can be NULL if the node
72 // annotation. Therefore the child (this node) should be an annotation too in bejGetRelatedDictionary()
75 if (parentDictionary == dictionaries->annotationDictionary) in bejGetRelatedDictionary()
77 return dictionaries->annotationDictionary; in bejGetRelatedDictionary()
79 return bejIsAnnotation(nodeName) ? dictionaries->annotationDictionary in bejGetRelatedDictionary()
80 : dictionaries->schemaDictionary; in bejGetRelatedDictionary()
86 * @param[in] dictionaries - available dictionaries.
87 * @param[in] parentDictionary - the dictionary used by the provided node's
89 * @param[in] node - node that caller is interested in.
90 * @param[in] nodeIndex - index of this node within its parent.
91 * @param[in] dictStartingOffset - starting dictionary child offset value of
93 * @param[out] sequenceNumber - sequence number of the node. bit0 specifies the
95 * @param[out] nodeDictionary - if not NULL, return a pointer to the dictionary
97 * @param[out] childEntryOffset - if not NULL, return the dictionary starting
98 * offset used for this nodes children. If this node is not supposed to have
110 if (node->name == NULL || node->name[0] == '\0') in bejFindSeqNumAndChildDictOffset()
125 if (dictionaries->annotationDictionary == parentDictionary) in bejFindSeqNumAndChildDictOffset()
134 bejGetRelatedDictionary(dictionaries, parentDictionary, node->name); in bejFindSeqNumAndChildDictOffset()
135 bool isAnnotation = dictionary == dictionaries->annotationDictionary; in bejFindSeqNumAndChildDictOffset()
149 node->name); in bejFindSeqNumAndChildDictOffset()
150 return -1; in bejFindSeqNumAndChildDictOffset()
157 node->name, &property, NULL); in bejFindSeqNumAndChildDictOffset()
163 node->name, dictStartingOffset, ret); in bejFindSeqNumAndChildDictOffset()
174 *childEntryOffset = property->childPointerOffset; in bejFindSeqNumAndChildDictOffset()
177 *sequenceNumber = (uint32_t)(property->sequenceNumber) << 1; in bejFindSeqNumAndChildDictOffset()
192 dictionaries, parentDictionary, &node->leaf.nodeAttr, nodeIndex, in bejUpdateIntMetaData()
194 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateIntMetaData()
198 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateIntMetaData()
200 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateIntMetaData()
202 node->leaf.metaData.sflSize += BEJ_TUPLE_L_SIZE_FOR_BEJ_INTEGER; in bejUpdateIntMetaData()
204 node->leaf.metaData.vSize = bejIntLengthOfValue(node->value); in bejUpdateIntMetaData()
215 dictionaries, parentDictionary, &(node->leaf.nodeAttr), nodeIndex, in bejUpdateStringMetaData()
217 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateStringMetaData()
221 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateStringMetaData()
223 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateStringMetaData()
226 size_t strLenWithNull = strlen(node->value) + 1; in bejUpdateStringMetaData()
227 node->leaf.metaData.sflSize += bejNnintEncodingSizeOfUInt(strLenWithNull); in bejUpdateStringMetaData()
229 node->leaf.metaData.vSize = strLenWithNull; in bejUpdateStringMetaData()
240 dictionaries, parentDictionary, &(node->leaf.nodeAttr), nodeIndex, in bejUpdateRealMetaData()
242 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateRealMetaData()
244 if (node->value > (double)INT64_MAX) in bejUpdateRealMetaData()
250 return -1; in bejUpdateRealMetaData()
255 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateRealMetaData()
257 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateRealMetaData()
262 double originalFract = modf(node->value, &originalWhole); in bejUpdateRealMetaData()
286 node->bejReal.whole = (int64_t)originalWhole; in bejUpdateRealMetaData()
287 node->bejReal.zeroCount = leadingZeros; in bejUpdateRealMetaData()
288 node->bejReal.fract = (int64_t)originalFactConvertedToWhole; in bejUpdateRealMetaData()
290 node->bejReal.expLen = 0; in bejUpdateRealMetaData()
291 node->bejReal.exp = 0; in bejUpdateRealMetaData()
295 node->leaf.metaData.vSize = BEJ_TUPLE_L_SIZE_FOR_BEJ_INTEGER; in bejUpdateRealMetaData()
297 node->leaf.metaData.vSize += bejIntLengthOfValue((int64_t)originalWhole); in bejUpdateRealMetaData()
299 node->leaf.metaData.vSize += bejNnintEncodingSizeOfUInt(leadingZeros); in bejUpdateRealMetaData()
301 node->leaf.metaData.vSize += in bejUpdateRealMetaData()
305 node->leaf.metaData.vSize += bejNnintEncodingSizeOfUInt(0); in bejUpdateRealMetaData()
308 node->leaf.metaData.sflSize += in bejUpdateRealMetaData()
309 bejNnintEncodingSizeOfUInt(node->leaf.metaData.vSize); in bejUpdateRealMetaData()
326 dictionaries, parentDictionary, &(node->leaf.nodeAttr), nodeIndex, in bejUpdateEnumMetaData()
330 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateEnumMetaData()
333 if (node->leaf.nodeAttr.name != NULL && node->leaf.nodeAttr.name[0] != '\0') in bejUpdateEnumMetaData()
339 node->value, &enumValueProperty, NULL); in bejUpdateEnumMetaData()
346 node->value, dictStartingOffset, ret); in bejUpdateEnumMetaData()
349 node->enumValueSeq = enumValueProperty->sequenceNumber; in bejUpdateEnumMetaData()
353 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateEnumMetaData()
355 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateEnumMetaData()
357 node->leaf.metaData.vSize = in bejUpdateEnumMetaData()
358 bejNnintEncodingSizeOfUInt(enumValueProperty->sequenceNumber); in bejUpdateEnumMetaData()
360 node->leaf.metaData.sflSize += in bejUpdateEnumMetaData()
361 bejNnintEncodingSizeOfUInt(node->leaf.metaData.vSize); in bejUpdateEnumMetaData()
372 dictionaries, parentDictionary, &node->leaf.nodeAttr, nodeIndex, in bejUpdateBoolMetaData()
374 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateBoolMetaData()
378 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateBoolMetaData()
380 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateBoolMetaData()
382 node->leaf.metaData.sflSize += BEJ_TUPLE_L_SIZE_FOR_BEJ_BOOL; in bejUpdateBoolMetaData()
384 node->leaf.metaData.vSize = 1; in bejUpdateBoolMetaData()
395 dictionaries, parentDictionary, &node->leaf.nodeAttr, nodeIndex, in bejUpdateNullMetaData()
397 node->leaf.metaData.sequenceNumber = sequenceNumber; in bejUpdateNullMetaData()
401 node->leaf.metaData.sflSize = bejNnintEncodingSizeOfUInt(sequenceNumber); in bejUpdateNullMetaData()
403 node->leaf.metaData.sflSize += BEJ_TUPLE_F_SIZE; in bejUpdateNullMetaData()
406 node->leaf.metaData.sflSize += BEJ_TUPLE_L_SIZE_FOR_BEJ_INTEGER; in bejUpdateNullMetaData()
407 node->leaf.metaData.vSize = 0; in bejUpdateNullMetaData()
412 * @brief Update metadata of leaf nodes.
414 * @param dictionaries - dictionaries needed for encoding.
415 * @param parentDictionary - dictionary used by this node's parent.
416 * @param childPtr - a pointer to the leaf node.
417 * @param childIndex - if this node is an array element, this is the array
419 * @param dictStartingOffset - starting dictionary child offset value of this
429 switch (chNode->nodeAttr.format.principalDataType) in bejUpdateLeafNodeMetaData()
462 fprintf(stderr, "Child type %u not supported\n", in bejUpdateLeafNodeMetaData()
463 chNode->nodeAttr.format.principalDataType); in bejUpdateLeafNodeMetaData()
464 return -1; in bejUpdateLeafNodeMetaData()
472 * @param dictionaries - dictionaries needed for encoding.
473 * @param parentDictionary - dictionary used by this node's parent.
474 * @param dictStartingOffset - starting dictionary child offset value of this
476 * @param node - a pointer to the parent node.
477 * @param nodeIndex - If this node is an array element, this is the array index.
491 dictionaries, parentDictionary, &node->nodeAttr, nodeIndex, in bejUpdateParentMetaData()
495 node->metaData.sequenceNumber = sequenceNumber; in bejUpdateParentMetaData()
496 node->metaData.childrenDictPropOffset = childEntryOffset; in bejUpdateParentMetaData()
497 node->metaData.nextChild = node->firstChild; in bejUpdateParentMetaData()
498 node->metaData.nextChildIndex = 0; in bejUpdateParentMetaData()
499 node->metaData.dictionary = nodeDictionary; in bejUpdateParentMetaData()
500 node->metaData.vSize = 0; in bejUpdateParentMetaData()
503 node->metaData.sflSize = in bejUpdateParentMetaData()
504 bejNnintEncodingSizeOfUInt(node->metaData.sequenceNumber); in bejUpdateParentMetaData()
506 node->metaData.sflSize += 1; in bejUpdateParentMetaData()
510 if (node->nodeAttr.format.principalDataType != bejPropertyAnnotation) in bejUpdateParentMetaData()
512 node->metaData.vSize = bejNnintEncodingSizeOfUInt(node->nChildren); in bejUpdateParentMetaData()
518 * @brief Update metadata of child nodes.
520 * If a child node contains its own child nodes, it will be added to the stack
523 * @param dictionaries - dictionaries needed for encoding.
524 * @param parent - parent node.
525 * @param stack - stack holding parent nodes.
532 // Get the next child of the parent. in bejProcessChildNodes()
533 void* childPtr = parent->metaData.nextChild; in bejProcessChildNodes()
538 // If we find a child with its own child nodes, add it to the stack and in bejProcessChildNodes()
543 dictionaries, parent->metaData.dictionary, in bejProcessChildNodes()
544 parent->metaData.childrenDictPropOffset, childPtr, in bejProcessChildNodes()
545 parent->metaData.nextChildIndex)); in bejProcessChildNodes()
547 RETURN_IF_IERROR(stack->stackPush(childPtr, stack->stackContext)); in bejProcessChildNodes()
553 dictionaries, parent->metaData.dictionary, childPtr, in bejProcessChildNodes()
554 parent->metaData.nextChildIndex, in bejProcessChildNodes()
555 parent->metaData.childrenDictPropOffset)); in bejProcessChildNodes()
556 // Use the child value size to update the parent value size. in bejProcessChildNodes()
558 // V: Include the child size in parent's value size. in bejProcessChildNodes()
559 parent->metaData.vSize += in bejProcessChildNodes()
560 (leafChild->metaData.sflSize + leafChild->metaData.vSize); in bejProcessChildNodes()
562 // Get the next child belongs to the parent. in bejProcessChildNodes()
582 bejUpdateParentMetaData(dictionaries, dictionaries->schemaDictionary, in bejUpdateNodeMetadata()
588 RETURN_IF_IERROR(stack->stackPush(root, stack->stackContext)); in bejUpdateNodeMetadata()
590 while (!stack->stackEmpty(stack->stackContext)) in bejUpdateNodeMetadata()
594 // parent->metaData.nextChild == NULL. in bejUpdateNodeMetadata()
596 stack->stackPeek(stack->stackContext); in bejUpdateNodeMetadata()
598 // Calculate metadata of all the child nodes of the current parent node. in bejUpdateNodeMetadata()
599 // If one of these child nodes has its own child nodes, that child node in bejUpdateNodeMetadata()
604 // parent's child nodes have been processed. If not, do not pop the in bejUpdateNodeMetadata()
606 if (parent != stack->stackPeek(stack->stackContext)) in bejUpdateNodeMetadata()
616 parent = stack->stackPop(stack->stackContext); in bejUpdateNodeMetadata()
619 parent->metaData.sflSize += in bejUpdateNodeMetadata()
620 bejNnintEncodingSizeOfUInt(parent->metaData.vSize); in bejUpdateNodeMetadata()
625 // of the stack element is this nodes's parent. "parentsParent" can be in bejUpdateNodeMetadata()
628 stack->stackPeek(stack->stackContext); in bejUpdateNodeMetadata()
633 parentsParent->metaData.vSize += in bejUpdateNodeMetadata()
634 (parent->metaData.sflSize + parent->metaData.vSize); in bejUpdateNodeMetadata()