bool ON_CheckSum::Write(ON_BinaryArchive& archive) const { bool rc = false; if ( archive.Archive3dmVersion() < 4 ) { // V3 files had other information // 48 bytes of zeros will work ok unsigned char b[48]; memset(b,0,sizeof(b)); rc = archive.WriteByte(48,b); } else { rc = archive.WriteBigSize(m_size); if (rc) rc = archive.WriteBigTime(m_time); if (rc) rc = archive.WriteInt(8,&m_crc[0]); } return rc; }
bool ON_CompressedBuffer::Write( ON_BinaryArchive& binary_archive ) const { bool rc = binary_archive.BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,0); if ( !rc ) return false; for(;;) { rc = binary_archive.WriteSize(m_sizeof_uncompressed); if (!rc) break; rc = binary_archive.WriteSize((m_buffer_compressed && m_sizeof_compressed>0) ? m_sizeof_compressed : 0); if (!rc) break; rc = binary_archive.WriteInt(m_crc_uncompressed); if (!rc) break; rc = binary_archive.WriteInt(m_crc_compressed); if (!rc) break; rc = binary_archive.WriteInt(m_method); if (!rc) break; rc = binary_archive.WriteInt(m_sizeof_element); if (!rc) break; if ( m_buffer_compressed && m_sizeof_compressed > 0 ) { rc = binary_archive.WriteByte(m_sizeof_compressed,m_buffer_compressed); if (!rc) break; } break; } if ( !binary_archive.EndWrite3dmChunk() ) rc = false; return rc; }
BOOL ON_UnknownUserData::Write( ON_BinaryArchive& file ) const { return file.WriteByte(m_sizeof_buffer,m_buffer); }