This is an archived page. It's not actively maintained.


The identity of a file descriptor's layer.


#include <prio.h>

typedef PRUintn PRDescIdentity;


File descriptors may be layered. Each layer has it own identity. Identities are allocated by the runtime and are to be associated (by the layer implementor) with all file descriptors of that layer. It is then possible to scan the chain of layers and find a layer that one recognizes, then predict that it will implement a desired protocol.

There are three well-known identities:

  • PR_INVALID_IO_LAYER, an invalid layer identity, for error return
  • PR_TOP_IO_LAYER, the identity of the top of the stack
  • PR_NSPR_IO_LAYER, the identity used by NSPR proper

Layers are created by PR_GetUniqueIdentity. A string may be associated with a layer when the layer is created. The string is copied by the runtime, and PR_GetNameForIdentity returns a reference to that copy. There is no way to delete a layer's identity after the layer is created.