| 2144 | |
| 2145 | template < typename F, typename D > |
| 2146 | void StreamIndexedIO::Index::writeDataNode( D *node, F &f ) |
| 2147 | { |
| 2148 | NodeBase::NodeType nodeType = node->nodeType(); |
| 2149 | f.write( (char *) &nodeType, sizeof( char ) ); |
| 2150 | |
| 2151 | uint64_t id = m_stringCache.find( node->name() ); |
| 2152 | writeLittleEndian( f, id ); |
| 2153 | |
| 2154 | char t = node->dataType(); |
| 2155 | f.write( &t, sizeof(char) ); |
| 2156 | |
| 2157 | if ( IndexedIO::Entry::isArray(node->dataType()) ) |
| 2158 | { |
| 2159 | writeLittleEndian<F,uint64_t>( f, node->arrayLength() ); |
| 2160 | } |
| 2161 | |
| 2162 | writeLittleEndian(f, node->offset()); |
| 2163 | writeLittleEndian<F,uint64_t>(f, node->size()); |
| 2164 | |
| 2165 | if ( node->nodeType() == NodeBase::Data ) |
| 2166 | { |
| 2167 | writeLittleEndian<F, uint64_t>( f, node->decompressedSize() ); |
| 2168 | writeLittleEndian<F, unsigned short>(f, node->compressedBlocks() ); |
| 2169 | } |
| 2170 | |
| 2171 | } |
| 2172 | |
| 2173 | template < typename F > |
| 2174 | void StreamIndexedIO::Index::writeNode( SubIndexNode *node, F &f ) |
nothing calls this directly
no test coverage detected