org.omg.PortableInterceptor

接口
异常
所有超级接口:
CurrentOperations
所有已知子接口:
Current

public interface CurrentOperations
     
extends CurrentOperations

Portable Interceptor Current(也称为 PICurrent)就是一个槽表 (slot table),每个服务都使用该表中的槽在其上下文与请求或应答服务上下文之间传输其上下文数据。每个需要使用 PICurrent 的服务都在初始化期间预定了一个或多个槽,然后在处理请求和应答期间使用这些槽。

在进行调用之前,通过调用 ORB.resolve_initial_references( "PICurrent" ) 获取 PICurrent。通过对 RequestInfo 对象进行 get_slot 操作,可从截取点内获取从线程域传送到请求域的 PICurrent 数据。PICurrent 也可以通过 resolve_initial_references 获取,但这样获取的是 Interceptor 的线程域 PICurrent。


方法摘要
 Any get_slot(int id)
          检索应用程序通过 get_slot 在 PICurrent 中设置的槽数据。
 void set_slot(int id, Any data)
          在槽中设置数据。
 

方法详细信息

get_slot

Any get_slot(int id)
             throws InvalidSlot
检索应用程序通过 get_slot 在 PICurrent 中设置的槽数据。该数据以 Any 的形式存在。

如果尚未设置给定槽,则返回包含带有 TCKind 值为 tk_null 的类型代码的 Any,并且该 Any 中不包含任何值。

参数:
id - 将返回数据的槽的 SlotId
返回:
给定槽标识符的数据,以 Any 的形式存在。
抛出:
InvalidSlot - 如果对尚未分配的槽调用 get_slot,则抛出此异常。
BAD_INV_ORDER - 如果在 ORB 初始化程序内调用 get_slot,则抛出此异常。

set_slot

void set_slot(int id,
              Any data)
              throws InvalidSlot
在槽中设置数据。该数据以 Any 的形式存在。如果该槽中已存在数据,则将其重写。

参数:
id - 将设置数据的槽的 SlotId
data - 将对所标识的槽设置的数据,以 Any 的形式存在。
抛出:
InvalidSlot - 如果对尚未分配的槽调用 set_slot,则抛出此异常。
BAD_INV_ORDER - 如果在 ORB 初始化程序内调用 set_slot,则抛出此异常。