本文整理汇总了C++中AutoBuffer::GetWritten方法的典型用法代码示例。如果您正苦于以下问题:C++ AutoBuffer::GetWritten方法的具体用法?C++ AutoBuffer::GetWritten怎么用?C++ AutoBuffer::GetWritten使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AutoBuffer
的用法示例。
在下文中一共展示了AutoBuffer::GetWritten方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Load
void PackFile::Load( const Bootil::BString& strName )
{
Msg( "LoadinG File!! %s\n", strName.c_str() );
AutoBuffer buffer;
if ( !Bootil::File::Read( strName, buffer ) )
{
Warning( "C0ouldn;t oipen!\n" );
return;
}
buffer.SetPos( 0 );
// Check file signature
{
Bootil::BString strSig = buffer.ReadString();
Msg( "Signature [%s]\n", strSig.c_str() );
if ( strSig != "FILEPACK001" ) return;
}
unsigned int iOffset = 0;
while ( true )
{
if ( buffer.ReadType<unsigned char>() != 1 ) break;
unsigned int iSize = buffer.ReadType<unsigned int>();
Bootil::BString strName = buffer.ReadString();
Msg( "%s %i\n", strName.c_str(), iSize );
FileEntry fe;
fe.iLength = iSize;
fe.iStartPos = iOffset;
m_FileMap[ strName ] = fe;
iOffset+= iSize;
}
Msg( "End Pos Files: %i\n", iOffset );
Msg( "End Pos Actual: %i\n", buffer.GetWritten() - buffer.GetPos() );
// The left over data goes into m_Buffer
m_Buffer.Clear();
m_Buffer.Write( buffer.GetCurrent(), buffer.GetWritten() - buffer.GetPos() );
}
示例2: AddFile
bool File::AddFile( const BString & ZipName, const BString & LocalFileName )
{
EnsureWriter();
AutoBuffer file;
if ( !Bootil::File::Read( LocalFileName, file ) )
{ return false; }
if ( ZR_OK != XZip::ZipAdd( ( XZip::HZIP )m_Write, ZipName.c_str(), file.GetBase(), file.GetWritten() ) )
{ return false; }
return true;
}