Source code

Revision control

Copy as Markdown

Other Tools

PR_PopIOLayer
=============
Removes a layer from the stack.
Syntax
------
.. code::
#include <prio.h>
PRFileDesc *PR_PopIOLayer(
PRFileDesc *stack,
PRDescIdentity id);
Parameters
~~~~~~~~~~
The function has the following parameters:
``stack``
A pointer to a :ref:`PRFileDesc` object representing the stack from
which the specified layer is to be removed.
``id``
Identity of the layer to be removed from the stack.
Returns
~~~~~~~
The function returns one of the following values:
- If the layer is successfully removed from the stack, a pointer to the
removed layer.
- If the layer is not found in the stack or cannot be popped (for
example, the bottommost layer), the function returns ``NULL`` with
the error code ``PR_INVALID_ARGUMENT_ERROR``.
Description
-----------
:ref:`PR_PopIOLayer` pops the specified layer from the stack. If the object
to be removed is found, :ref:`PR_PopIOLayer` returns a pointer to the
removed object The object then becomes the responsibility of the caller.
Even if the identity indicates the top layer of the stack, the reference
returned is not the file descriptor for the stack and that file
descriptor remains valid. In other words, ``stack`` continues to point
to the top of the stack after the function returns.