MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / writeByBlocks

Function writeByBlocks

source/MRMesh/MRProgressReadWrite.cpp:8–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6{
7
8bool writeByBlocks( std::ostream& out, const char* data, size_t dataSize, ProgressCallback callback /*= {}*/, size_t blockSize /*= ( size_t( 1 ) << 16 )*/ )
9{
10 if ( !dataSize )
11 return true;
12
13 if ( !callback )
14 {
15 out.write( data, dataSize );
16 return true;
17 }
18
19 int blockIndex = 0;
20 for ( size_t max = dataSize / blockSize; blockIndex < max; ++blockIndex )
21 {
22 out.write( data + blockIndex * blockSize, blockSize );
23 if ( !callback( float( blockIndex * blockSize ) / dataSize ) )
24 return false;
25 }
26 const size_t remnant = dataSize - blockIndex * blockSize;
27 if ( remnant )
28 out.write( data + blockIndex * blockSize, remnant );
29 if ( !callback( float( blockIndex * blockSize + remnant ) / dataSize ) )
30 return false;
31
32 return true;
33}
34
35bool readByBlocks( std::istream& in, char* data, size_t dataSize, ProgressCallback callback /*= {}*/, size_t blockSize /*= ( size_t( 1 ) << 16 )*/ )
36{

Callers 4

toRawFloatFunction · 0.85
toMrLinesFunction · 0.85
toMrmeshFunction · 0.85
runMethod · 0.85

Calls 1

writeMethod · 0.45

Tested by

no test coverage detected