LCOV - code coverage report
Current view: top level - data/include/set - data_node_set.inl (source / functions) Hit Total Coverage
Test: crystal-facet-uml_v1.61.0_covts Lines: 81 89 91.0 %
Date: 2024-10-26 21:44:38 Functions: 16 16 100.0 %

          Line data    Source code
       1             : /* File: data_node_set.inl; Copyright and License: see below */
       2             : 
       3             : #include "u8/u8_log.h"
       4             : #include <assert.h>
       5             : 
       6           3 : static inline bool data_node_set_is_valid ( const data_node_set_t *this_ )
       7             : {
       8           3 :     return data_classifier_is_valid( &((*this_).classifier) );
       9             : }
      10             : 
      11             : static inline void data_node_set_invalidate ( data_node_set_t *this_ )
      12             : {
      13             :     data_classifier_reinit_empty( &((*this_).classifier) );
      14             : }
      15             : 
      16           5 : static inline void data_node_set_private_destroy_features( data_node_set_t *this_ )
      17             : {
      18           5 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
      19             : 
      20           6 :     for ( int index = 0; index < (*this_).feature_count; index ++ )
      21             :     {
      22           1 :         data_feature_destroy ( &((*this_).features[index]) );
      23             :     }
      24             : 
      25           5 :     (*this_).feature_count = 0;
      26           5 : }
      27             : 
      28           5 : static inline void data_node_set_private_destroy_relationships( data_node_set_t *this_ )
      29             : {
      30           5 :     assert( (*this_).relationship_count <= DATA_NODE_SET_MAX_RELATIONSHIPS );
      31             : 
      32           7 :     for ( int index = 0; index < (*this_).relationship_count; index ++ )
      33             :     {
      34           2 :         data_relationship_destroy ( &((*this_).relationships[index]) );
      35             :     }
      36             : 
      37           5 :     (*this_).relationship_count = 0;
      38           5 : }
      39             : 
      40           1 : static inline const data_classifier_t *data_node_set_get_classifier_const ( const data_node_set_t *this_ )
      41             : {
      42           1 :     return &((*this_).classifier);
      43             : }
      44             : 
      45           1 : static inline data_classifier_t *data_node_set_get_classifier_ptr ( data_node_set_t *this_ )
      46             : {
      47           1 :     return &((*this_).classifier);
      48             : }
      49             : 
      50           4 : static inline uint32_t data_node_set_get_feature_count ( const data_node_set_t *this_ )
      51             : {
      52           4 :     return (*this_).feature_count;
      53             : }
      54             : 
      55           1 : static inline const data_feature_t *data_node_set_get_feature_const ( const data_node_set_t *this_, uint32_t index )
      56             : {
      57           1 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
      58             : 
      59             :     const data_feature_t *result;
      60           1 :     if ( index < (*this_).feature_count )
      61             :     {
      62           1 :         result = &((*this_).features[index]);
      63             :     }
      64             :     else
      65             :     {
      66           0 :         result = NULL;
      67           0 :         U8_LOG_ERROR_INT( "index out of bounds (>=(*this_).feature_count)", index );
      68             :     }
      69             : 
      70           1 :     return result;
      71             : }
      72             : 
      73           1 : static inline data_feature_t *data_node_set_get_feature_ptr ( data_node_set_t *this_, uint32_t index )
      74             : {
      75           1 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
      76             : 
      77             :     data_feature_t *result;
      78           1 :     if ( index < (*this_).feature_count )
      79             :     {
      80           1 :         result = &((*this_).features[index]);
      81             :     }
      82             :     else
      83             :     {
      84           0 :         result = NULL;
      85           0 :         U8_LOG_ERROR_INT( "index out of bounds (>=(*this_).feature_count)", index );
      86             :     }
      87             : 
      88           1 :     return result;
      89             : }
      90             : 
      91           1 : static inline const data_feature_t *data_node_set_get_feature_by_id_const ( const data_node_set_t *this_, data_row_id_t row_id )
      92             : {
      93           1 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
      94           1 :     const data_feature_t *result = NULL;
      95             : 
      96           1 :     for ( int index = 0; index < (*this_).feature_count; index ++ )
      97             :     {
      98             :         const data_feature_t *probe;
      99           1 :         probe = &((*this_).features[index]);
     100           1 :         if ( row_id == data_feature_get_row_id( probe ) )
     101             :         {
     102           1 :             result = probe;
     103           1 :             break;
     104             :         }
     105             :     }
     106             : 
     107           1 :     return result;
     108             : }
     109             : 
     110           1 : static inline data_feature_t *data_node_set_get_feature_by_id_ptr ( data_node_set_t *this_, data_row_id_t row_id )
     111             : {
     112           1 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
     113           1 :     data_feature_t *result = NULL;
     114             : 
     115           1 :     for ( int index = 0; index < (*this_).feature_count; index ++ )
     116             :     {
     117             :         data_feature_t *probe;
     118           1 :         probe = &((*this_).features[index]);
     119           1 :         if ( row_id == data_feature_get_row_id( probe ) )
     120             :         {
     121           1 :             result = probe;
     122           1 :             break;
     123             :         }
     124             :     }
     125             : 
     126           1 :     return result;
     127             : }
     128             : 
     129           1 : static inline data_feature_t *data_node_set_get_feature_list_ptr ( data_node_set_t *this_ )
     130             : {
     131           1 :     assert( (*this_).feature_count <= DATA_NODE_SET_MAX_FEATURES );
     132           1 :     return (*this_).features;
     133             : }
     134             : 
     135           3 : static inline uint32_t data_node_set_get_relationship_count ( const data_node_set_t *this_ )
     136             : {
     137           3 :     return (*this_).relationship_count;
     138             : }
     139             : 
     140           2 : static inline const data_relationship_t *data_node_set_get_relationship_const ( const data_node_set_t *this_, uint32_t index )
     141             : {
     142           2 :     assert( (*this_).relationship_count <= DATA_NODE_SET_MAX_RELATIONSHIPS );
     143             : 
     144             :     const data_relationship_t *result;
     145           2 :     if ( index < (*this_).relationship_count )
     146             :     {
     147           2 :         result = &((*this_).relationships[index]);
     148             :     }
     149             :     else
     150             :     {
     151           0 :         result = NULL;
     152           0 :         U8_LOG_ERROR_INT( "index out of bounds (>=(*this_).relationship_count)", index );
     153             :     }
     154             : 
     155           2 :     return result;
     156             : }
     157             : 
     158           1 : static inline data_relationship_t *data_node_set_get_relationship_ptr ( data_node_set_t *this_, uint32_t index )
     159             : {
     160           1 :     assert( (*this_).relationship_count <= DATA_NODE_SET_MAX_RELATIONSHIPS );
     161             : 
     162             :     data_relationship_t *result;
     163           1 :     if ( index < (*this_).relationship_count )
     164             :     {
     165           1 :         result = &((*this_).relationships[index]);
     166             :     }
     167             :     else
     168             :     {
     169           0 :         result = NULL;
     170           0 :         U8_LOG_ERROR_INT( "index out of bounds (>=(*this_).relationship_count)", index );
     171             :     }
     172             : 
     173           1 :     return result;
     174             : }
     175             : 
     176           1 : static inline const data_relationship_t *data_node_set_get_relationship_by_id_const ( const data_node_set_t *this_, data_row_id_t row_id )
     177             : {
     178           1 :     assert( (*this_).relationship_count <= DATA_NODE_SET_MAX_RELATIONSHIPS );
     179           1 :     const data_relationship_t *result = NULL;
     180             : 
     181           1 :     for ( int index = 0; index < (*this_).relationship_count; index ++ )
     182             :     {
     183             :         const data_relationship_t *probe;
     184           1 :         probe = &((*this_).relationships[index]);
     185           1 :         if ( row_id == data_relationship_get_row_id( probe ) )
     186             :         {
     187           1 :             result = probe;
     188           1 :             break;
     189             :         }
     190             :     }
     191             : 
     192           1 :     return result;
     193             : }
     194             : 
     195           1 : static inline data_relationship_t *data_node_set_get_relationship_by_id_ptr ( data_node_set_t *this_, data_row_id_t row_id )
     196             : {
     197           1 :     assert( (*this_).relationship_count <= DATA_NODE_SET_MAX_RELATIONSHIPS );
     198           1 :     data_relationship_t *result = NULL;
     199             : 
     200           1 :     for ( int index = 0; index < (*this_).relationship_count; index ++ )
     201             :     {
     202             :         data_relationship_t *probe;
     203           1 :         probe = &((*this_).relationships[index]);
     204           1 :         if ( row_id == data_relationship_get_row_id( probe ) )
     205             :         {
     206           1 :             result = probe;
     207           1 :             break;
     208             :         }
     209             :     }
     210             : 
     211           1 :     return result;
     212             : }
     213             : 
     214             : 
     215             : /*
     216             : Copyright 2020-2024 Andreas Warnke
     217             : 
     218             : Licensed under the Apache License, Version 2.0 (the "License");
     219             : you may not use this file except in compliance with the License.
     220             : You may obtain a copy of the License at
     221             : 
     222             :     http://www.apache.org/licenses/LICENSE-2.0
     223             : 
     224             : Unless required by applicable law or agreed to in writing, software
     225             : distributed under the License is distributed on an "AS IS" BASIS,
     226             : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     227             : See the License for the specific language governing permissions and
     228             : limitations under the License.
     229             : */

Generated by: LCOV version 1.16