Struct xpcom::interfaces::nsISafeOutputStream
[−]
[src]
#[repr(C)]pub struct nsISafeOutputStream { /* fields omitted */ }
interface nsISafeOutputStream : nsISupports
/**
* This interface provides a mechanism to control an output stream
* that takes care not to overwrite an existing target until it is known
* that all writes to the destination succeeded.
*
* An object that supports this interface is intended to also support
* nsIOutputStream.
*
* For example, a file output stream that supports this interface writes to
* a temporary file, and moves it over the original file when |finish| is
* called only if the stream can be successfully closed and all writes
* succeeded. If |finish| is called but something went wrong during
* writing, it will delete the temporary file and not touch the original.
* If the stream is closed by calling |close| directly, or the stream
* goes away, the original file will not be overwritten, and the temporary
* file will be deleted.
*
* Currently, this interface is implemented only for file output streams.
*/
Methods
impl nsISafeOutputStream
[src]
pub fn coerce<T: nsISafeOutputStreamCoerce>(&self) -> &T
[src]
Cast this nsISafeOutputStream
to one of its base interfaces.
impl nsISafeOutputStream
[src]
pub unsafe fn Finish(&self) -> nsresult
[src]
/**
* Call this method to close the stream and cause the original target
* to be overwritten. Note: if any call to |write| failed to write out
* all of the data given to it, then calling this method will |close| the
* stream and return failure. Further, if closing the stream fails, this
* method will return failure. The original target will be overwritten only
* if all calls to |write| succeeded and the stream was successfully closed.
*/
void finish ();
Methods from Deref<Target = nsISupports>
pub fn coerce<T: nsISupportsCoerce>(&self) -> &T
[src]
Cast this nsISupports
to one of its base interfaces.
pub unsafe fn QueryInterface(
&self,
uuid: &nsIID,
result: *mut *mut c_void
) -> nsresult
[src]
&self,
uuid: &nsIID,
result: *mut *mut c_void
) -> nsresult
void QueryInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result);
pub unsafe fn AddRef(&self) -> nsrefcnt
[src]
[noscript,notxpcom] nsrefcnt AddRef ();
pub unsafe fn Release(&self) -> nsrefcnt
[src]
[noscript,notxpcom] nsrefcnt Release ();
Trait Implementations
impl XpCom for nsISafeOutputStream
[src]
const IID: nsIID
IID: nsIID = nsID(1603355399, 23604, 19999, [142, 50, 236, 116, 157, 37, 178, 122])
fn query_interface<T: XpCom>(&self) -> Option<RefPtr<T>>
[src]
Perform a QueryInterface call on this object, attempting to dynamically cast it to the requested interface type. Returns Some(RefPtr) if the cast succeeded, and None otherwise. Read more
impl RefCounted for nsISafeOutputStream
[src]
unsafe fn addref(&self)
[src]
Increment the reference count.
unsafe fn release(&self)
[src]
Decrement the reference count, potentially freeing backing memory.
impl Deref for nsISafeOutputStream
[src]
type Target = nsISupports
The resulting type after dereferencing.
fn deref(&self) -> &nsISupports
[src]
Dereferences the value.