Module java.corba
Package org.omg.PortableInterceptor

## Interface CurrentOperations

All Superinterfaces:
  CurrentOperations

All Known Subinterfaces:
  Current

    public interface CurrentOperations
    extends CurrentOperations

Portable Interceptors Current (also known as `PICurrent`) is merely a slot table, the slots of which are used by each service to transfer their context data between their context and the request's or reply's service context. Each service which wishes to use PICurrent reserves a slot or slots at initialization time and uses those slots during the processing of requests and replies.

Before an invocation is made, PICurrent is obtained via a call to `ORB.resolve_initial_references( "PICurrent" )`. From within the interception points, the data on PICurrent that has moved from the thread scope to the request scope is available via the `get_slot` operation on the `RequestInfo` object. A PICurrent can still be obtained via `resolve_initial_references`, but that is the Interceptor's thread scope PICurrent.

### Method Summary

All Methods Instance Methods Abstract Methods
`Any` `get_slot(int id)` Retrieves the slot data the application set in PICurrent via `get_slot`.
`void` `set_slot(int id, Any data)` Sets data in a slot.

### Method Detail

#### get_slot

    Any get_slot(int id)
          throws InvalidSlot

Retrieves the slot data the application set in PICurrent via `get_slot`. The data is in the form of an Any.

If the given slot has not been set, an Any containing a type code with a `TCKind` value of `tk_null` and no value is returned.

Parameters:
  `id` - The `SlotId` of the slot from which the data will be returned.
Returns:
  The data, in the form of an Any, of the given slot identifier.
Throws:
  `InvalidSlot` - thrown if get_slot is called on a slot that has not been allocated.
  `BAD_INV_ORDER` - thrown if `get_slot` is called from within an ORB initializer

#### set_slot

    void set_slot(int id,
                  Any data)
           throws InvalidSlot

Sets data in a slot. The data is in the form of an Any. If data already exists in that slot, it is overridden.

Parameters:
  `id` - The `SlotId` of the slot to which the data will be set.
  `data` - The data, in the form of an Any, which will be set to the identified slot.
Throws:
  `InvalidSlot` - thrown if `set_slot` is called on a slot that has not been allocated.
  `BAD_INV_ORDER` - thrown if `set_slot` is called from within an ORB initializer.