LibreOffice
LibreOffice 24.2 SDK API Reference
|
An optional companion interface to com::sun::star::io::XOutputStream that supports scenarios where com::sun::star::io::XOutputStream::writeBytes() operates asynchronously and does not necessarily report any errors. More...
import"XAsyncOutputMonitor.idl";
Public Member Functions | |
void | waitForCompletion () raises (IOException) |
waits for the completion of any previous calls to com::sun::star::io::XOutputStream::writeBytes(), and reports potentially pending errors. More... | |
An optional companion interface to com::sun::star::io::XOutputStream that supports scenarios where com::sun::star::io::XOutputStream::writeBytes() operates asynchronously and does not necessarily report any errors.
A typical scenario where this interface is useful is when an com::sun::star::io::XOutputStream is used to write to a file via NFS. Normally, any calls to com::sun::star::io::XOutputStream::writeBytes() will execute asynchronously then, in that any potential errors might only be reported by later calls to com::sun::star::io::XOutputStream::writeBytes() or com::sun::star::io::XOutputStream::closeOutput(). If such an output stream shall not be closed immediately after one or more calls to com::sun::star::io::XOutputStream::writeBytes(), but the client wants to know as soon as possible whether writing was successful, then com::sun::star::io::XAsyncOutputMonitor::waitForCompletion() should be called after the series of calls to com::sun::star::io::XOutputStream::writeBytes().
void waitForCompletion | ( | ) | ||
raises | ( | IOException | ||
) |
waits for the completion of any previous calls to com::sun::star::io::XOutputStream::writeBytes(), and reports potentially pending errors.
Calling this method is potentially expensive (even if the associated com::sun::star::io::XOutputStream represents a local file not accessed via NFS, for example). This method has a similar description to com::sun::star::io::XOutputStream::flush(). However, where the semantics of flush
are rather vague, waitForCompletion
has very specific semantics—it just blocks long enough so that any errors encountered during previous calls to com::sun::star::io::XOutputStream::writeBytes() can reliably be reported. It specifically does not guarantee that any data have safely been stored on a stable physical medium, like a hard disk (and it is completely unspecified whether flush
should give this guarantee).
com::sun::star::io::IOException | if any previous call to com::sun::star::io::XOutputStream::writeBytes() encountered such an error, but has not yet reported it (in cases where writeBytes operates asynchronously). |