Struct xpcom::interfaces::nsIMemory
[−]
[src]
#[repr(C)]pub struct nsIMemory { /* fields omitted */ }
interface nsIMemory : nsISupports
/**
*
* nsIMemory: interface to allocate and deallocate memory. Also provides
* for notifications in low-memory situations.
*
* The frozen exported symbols moz_xmalloc, moz_xrealloc, and free
* provide a more efficient way to access XPCOM memory allocation. Using
* those symbols is preferred to using the methods on this interface.
*
* A client that wishes to be notified of low memory situations (for
* example, because the client maintains a large memory cache that
* could be released when memory is tight) should register with the
* observer service (see nsIObserverService) using the topic
* "memory-pressure". There are specific types of notications
* that can occur. These types will be passed as the |aData|
* parameter of the of the "memory-pressure" notification:
*
* "low-memory"
* This will be passed as the extra data when the pressure
* observer is being asked to flush for low-memory conditions.
*
* "low-memory-ongoing"
* This will be passed when we continue to be in a low-memory
* condition and we want to flush caches and do other cheap
* forms of memory minimization, but heavy handed approaches like
* a GC are unlikely to succeed.
*
* "-no-forward"
* This is appended to the above two parameters when the resulting
* notification should not be forwarded to the child processes.
*
* "heap-minimize"
* This will be passed as the extra data when the pressure
* observer is being asked to flush because of a heap minimize
* call.
*
* "alloc-failure"
* This will be passed as the extra data when the pressure
* observer has been asked to flush because a malloc() or
* realloc() has failed.
*
* "lowering-priority"
* This will be passed as the extra data when the priority of a child
* process is lowered. The pressure observers could take the chance to
* clear caches that could be easily regenerated. This type of
* notification only appears in child processes.
*/
Methods
impl nsIMemory
[src]
pub fn coerce<T: nsIMemoryCoerce>(&self) -> &T
[src]
Cast this nsIMemory
to one of its base interfaces.
impl nsIMemory
[src]
pub unsafe fn HeapMinimize(&self, immediate: bool) -> nsresult
[src]
/**
* Attempts to shrink the heap.
* @param immediate - if true, heap minimization will occur
* immediately if the call was made on the main thread. If
* false, the flush will be scheduled to happen when the app is
* idle.
* @throws NS_ERROR_FAILURE if 'immediate' is set an the call
* was not on the application's main thread.
*/
void heapMinimize (in boolean immediate);
pub unsafe fn IsLowMemoryPlatform(&self, _retval: *mut bool) -> nsresult
[src]
/**
* This predicate can be used to determine if the platform is a "low-memory"
* platform. Callers may use this to dynamically tune their behaviour
* to favour reduced memory usage at the expense of performance. The value
* returned by this function will not change over the lifetime of the process.
*/
boolean isLowMemoryPlatform ();
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 nsIMemory
[src]
const IID: nsIID
IID: nsIID = nsID(503334964, 28047, 16986, [188, 156, 162, 129, 46, 212, 59, 183])
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 nsIMemory
[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 nsIMemory
[src]
type Target = nsISupports
The resulting type after dereferencing.
fn deref(&self) -> &nsISupports
[src]
Dereferences the value.