Module  java.corba

Interface ORBInitInfoOperations

  • All Known Subinterfaces:
    ORBInitInfo


    public interface ORBInitInfoOperations
    传递给每个ORBInitializer ,允许它在ORB初始化时注册拦截器并执行其他任务。

    ORBInitInfo对象仅在ORB.init期间有效。 如果服务保留对其ORBInitInfo对象的引用,并尝试在ORB.init返回后使用该对象,则该对象不再存在,并且将抛出一个OBJECT_NOT_EXIST异常。

    另请参见:
    ORBInitializer
    • 方法详细信息

      • arguments

        String[] arguments​()
        返回传递给ORB.init的参数。 它们可能包含也可能不包含ORB的参数。
      • orb_id

        String orb_id​()
        返回正在初始化的ORB的ID。
      • codec_factory

        CodecFactory codec_factory​()
        返回IOP.CodecFactory CodecFactory通常是通过调用ORB.resolve_initial_references( "CodecFactory" )获得的,但是由于ORB尚不可用,特别是在处理业务上下文时,Interceptors将需要一个Codec ,所以在ORB初始化期间需要一种获取Codec方法。
      • register_initial_reference

        void register_initial_reference​(String id,
                                        Object obj)
                                 throws InvalidName
        ORB.register_initial_reference相同。 这里存在同样的功能,因为尚未完全初始化的ORB尚不可用,但初始引用可能需要注册为Interceptor注册的一部分。 唯一的区别是ORB上的此操作版本使用PIDL( CORBA.ORB.ObjectId )和( CORBA.ORB.InvalidName ),而此接口中的版本使用此接口中定义的IDL; 语义是相同的。
        异常
        InvalidName
      • resolve_initial_references

        Object resolve_initial_references​(String id)
                                   throws InvalidName
        ORB.resolve_initial_references相同。 这里存在同样的功能,因为尚未完全初始化的ORB尚不可用,但ORB中可能需要初始引用作为Interceptor注册的一部分。 唯一的区别是ORB上的此操作版本使用PIDL( CORBA::ORB::ObjectIdCORBA::ORB::InvalidName ),而此接口中的版本使用此接口中定义的IDL; 语义是相同的。

        此操作仅在post_init期间有效。

        异常
        InvalidName
      • add_client_request_interceptor

        void add_client_request_interceptor​(ClientRequestInterceptor interceptor)
                                     throws DuplicateName
        用于将客户端请求Interceptor添加到客户端请求拦截器列表中。
        参数
        interceptor - 要添加的 ClientRequestInterceptor
        异常
        DuplicateName - 如果客户端请求Interceptor已经使用此拦截器的名称注册,则抛出此异常。
      • add_server_request_interceptor

        void add_server_request_interceptor​(ServerRequestInterceptor interceptor)
                                     throws DuplicateName
        用于将服务器端请求拦截器添加到服务器端请求拦截器列表中。
        参数
        interceptor - 要添加的ServerRequestInterceptor。
        异常
        DuplicateName - 如果服务器端请求Interceptor已经使用此拦截器的名称注册,则抛出该错误
      • add_ior_interceptor

        void add_ior_interceptor​(IORInterceptor interceptor)
                          throws DuplicateName
        用于将IOR Interceptor添加到IOR拦截器列表中。
        参数
        interceptor - 要添加的IORInterceptor。
        异常
        DuplicateName - 如果IOR Interceptor已经使用此Interceptor的名称注册,则抛出。
      • allocate_slot_id

        int allocate_slot_id​()
        呼叫在PortableInterceptor.Current分配一个插槽。

        请注意,虽然槽号可以在ORB初始化程序中分配,但槽本身不能被初始化。

        结果
        已分配的插槽的索引。
        异常
        BAD_INV_ORDER - 抛出,标准的次要代码为14,如果 set_slotPICurrent在ORB初始化程序中的 get_slot上调用。
        另请参见:
        Current
      • register_policy_factory

        void register_policy_factory​(int type,
                                     PolicyFactory policy_factory)
        注册 PolicyFactory为给定的 PolicyType
        参数
        type - 给定的 PolicyFactory服务的策略类型。
        policy_factory - 给定政策类型的工厂。
        异常
        BAD_INV_ORDER - thrown, with a standard minor code of 16, if a PolicyFactory already exists for the given PolicyType.