<html> <head> <title>Interface XAsyncOutputMonitor</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="../../../../idl.css"> </head> <body> <div id="adc-idlref"> <a name="_top_"> </a><table class="navimain" border="0" cellpadding="3"> <tr> <td class="navimain"><a href="../module-ix.html" class="navimain">Overview</a></td> <td class="navimain"><a href="module-ix.html" class="navimain">Module</a></td> <td class="navimain"><a href="XAsyncOutputMonitor-xref.html" class="navimain">Use</a></td> <td class="navimainnone">Devguide</td> <td class="navimain"><a href="../../../../index-files/index-1.html" class="navimain">Index</a></td> </tr> </table> <table class="navisub" border="0" cellpadding="0"> <tr> <td class="navisub"><a href="#MethodsSummary" class="navisub">Methods' Summary</a></td> <td class="navisub"><a href="#MethodsDetails" class="navisub">Methods' Details</a></td> <td class="navisub">Attributes' Summary</td> <td class="navisub">Attributes' Details</td> </tr> </table> <hr> <table border="0" width="100%" cellpadding="5" cellspacing="3" class="title-table" style="margin-bottom:6pt;"> <tr> <td><p class="namechain"><a href="../../../../module-ix.html" class="namechain">::</a> <a href="../../../module-ix.html" class="namechain">com</a> :: <a href="../../module-ix.html" class="namechain">sun</a> :: <a href="../module-ix.html" class="namechain">star</a> :: <a href="module-ix.html" class="namechain">io</a> :: </p> </td> </tr> <tr> <td class="title"><table class="title-table" width="99%"> <tr> <td width="25%" class="title2">unpublished </td> <td width="50%" class="title">interface XAsyncOutputMonitor</td> <td width="*"/></tr> </table> </td> </tr> <tr> <td/></tr> <tr> <td><dl> <dt><b>Description</b></dt> <dd>An optional companion interface to <a href="XOutputStream.html">XOutputStream</a> that supports scenarios where <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a> operates asynchronously and does not necessarily report any errors. </dd> <dd><p>A typical scenario where this interface is useful is when an <a href="XOutputStream.html">XOutputStream</a> is used to write to a file via NFS. Normally, any calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a> will execute asynchronously then, in that any potential errors might only be reported by later calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a> or <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#closeOutput">closeOutput</a>. If such an output stream shall not be closed immediately after one or more calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a>, but the client wants to know as soon as possible whether writing was successful, then <a href="XAsyncOutputMonitor.html">XAsyncOutputMonitor</a>::<a href="XAsyncOutputMonitor.html#waitForCompletion">waitForCompletion</a> should be called after the series of calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a>.</p> </dd> <dt><b/></dt> <dd/></dl> </td> </tr> </table> <hr> <a name="MethodsSummary"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle" colspan="2">Methods' Summary</td> </tr> <tr> <td class="imsum_left"><a href="#waitForCompletion">waitForCompletion</a></td> <td class="imsum_right">waits for the completion of any previous calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a>, and reports potentially pending errors. </td> </tr> </table> <a name="MethodsDetails"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle">Methods' Details</td> </tr> <tr> <td class="imdetail"><a name="waitForCompletion" class="membertitle">waitForCompletion</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">void</td> </tr> <tr> <td valign="top"><b>waitForCompletion</b>()</td> </tr> <tr> <td valign="top" align="right">raises( </td> <td valign="top" colspan="2"><a href="IOException.html">IOException</a> );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>waits for the completion of any previous calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a>, and reports potentially pending errors. </dd> <dd><p>Calling this method is potentially expensive (even if the associated <a href="XOutputStream.html">XOutputStream</a> represents a local file not accessed via NFS, for example). This method has a similar description to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#flush">flush</a>. However, where the semantics of <code>flush</code> are rather vague, <code>waitForCompletion</code> has very specific semantics—it just blocks long enough so that any errors encountered during previous calls to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a> can reliably be reported. It specificially does not guarantee that any data have savely been stored on a stable physical medium, like a hard disk (and it is completely unspecified whether <code>flush</code> should give this guarantee).</p> </dd> <dt><b>Throws</b></dt> <dd>com::sun::star::io::IOException if any previous call to <a href="XOutputStream.html">XOutputStream</a>::<a href="XOutputStream.html#writeBytes">writeBytes</a> encountered such an error, but has not yet reported it (in cases where <code>writeBytes</code> operates asynchronously). </dd> </dl> </td> </tr> </table> </td> </tr> </table> <a href="#_top_">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright © 2008 Sun Microsystems, Inc.</p> </div> <!-- id="adc-idlref" --> </body> </html>