/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
/** Implementation of a UNO input stream wrapping a binary input stream.
*/ class UnoBinaryInputStream : public ::cppu::WeakImplHelper< XInputStream >
{ public: explicit UnoBinaryInputStream( BinaryInputStream& rInStrm );
OUString TextInputStream::readLine()
{ if( mxTextStrm.is() ) try
{ /* The function createFinalString() adds a character that may have
been buffered in the previous call of readToChar() (see below). */ return createFinalString( mxTextStrm->readLine() );
} catch (const Exception&)
{
mxTextStrm.clear();
} return OUString();
}
OUString TextInputStream::readToChar( sal_Unicode cChar, bool bIncludeChar )
{ if( mxTextStrm.is() ) try
{
Sequence< sal_Unicode > aDelimiters{ cChar }; /* Always get the delimiter character from the UNO text input stream. In difference to this implementation, it will not return it in the next call but silently skip it. If caller specifies to exclude the character in this call, it will be returned in the next call of one of the own member functions. The function createFinalString() adds
a character that has been buffered in the previous call. */
OUString aString = createFinalString( mxTextStrm->readString( aDelimiters, false ) ); // remove last character from string and remember it for next call if( !bIncludeChar && !aString.isEmpty() && (aString[ aString.getLength() - 1 ] == cChar) )
{
mcPendingChar = cChar;
aString = aString.copy( 0, aString.getLength() - 1 );
} return aString;
} catch (const Exception&)
{
mxTextStrm.clear();
} return OUString();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.