22#include <com/sun/star/io/IOException.hpp>
23#include <osl/diagnose.h>
38 osl_createTempFile(
nullptr, &
m_tmpfl,
nullptr );
39 OSL_ENSURE(
m_tmpfl,
"input stream without tempfile!" );
41 if ( osl_setFilePos(
m_tmpfl, osl_Pos_End, 0 ) == osl_File_E_None )
43 sal_uInt64 nFileSize = 0;
44 if ( osl_getFilePos(
m_tmpfl, &nFileSize ) == osl_File_E_None )
46 oslFileError rc = osl_setFilePos(
m_tmpfl, osl_Pos_Absolut, 0 );
47 SAL_WARN_IF(rc != osl_File_E_None,
"ucbhelper",
"osl_setFilePos failed");
58 sal_Int32 nBytesToRead)
62 sal_uInt64 nBeforePos( 0 );
63 sal_uInt64 nBytesRequested( nBytesToRead );
64 sal_uInt64 nBytesRead( 0 );
66 osl_getFilePos(
m_tmpfl, &nBeforePos );
68 if ( 0 == ( nBytesRequested = std::min< sal_uInt64 >(
m_nLength - nBeforePos, nBytesRequested ) ) )
71 if ( 0 <= nBytesToRead &&
aData.getLength() < nBytesToRead )
72 aData.realloc( nBytesToRead );
74 if ( osl_readFile(
m_tmpfl,
aData.getArray(), nBytesRequested, &nBytesRead ) != osl_File_E_None )
77 return sal_Int32( nBytesRead );
82 sal_Int32 nMaxBytesToRead )
94 oslFileError rc = osl_setFilePos(
m_tmpfl, osl_Pos_Current, nBytesToSkip );
95 SAL_WARN_IF(rc != osl_File_E_None,
"ucbhelper",
"osl_setFilePos failed");
122 oslFileError rc = osl_setFilePos(
m_tmpfl, osl_Pos_Absolut, location );
123 SAL_WARN_IF(rc != osl_File_E_None,
"ucbhelper",
"osl_setFilePos failed");
134 sal_uInt64 nFilePos = 0;
135 osl_getFilePos(
m_tmpfl, &nFilePos );
const sal_Int32 m_nLength
#define SAL_WARN_IF(condition, area, stream)
constexpr OUStringLiteral aData