Spec-Zone.ru › OpenJDK 8

Интерфейс ServerRequestInfoOperations

Все суперинтерфейсы:
RequestInfoOperations
Все известные подинтерфейсы:
ServerRequestInfo

public interface ServerRequestInfoOperations
extends RequestInfoOperations

Информация о запросе, доступная для серверных обработчиков запросов.

Некоторые атрибуты и операции над ServerRequestInfo недействительны во всех точках перехвата. Следующая таблица показывает допустимость каждого атрибута или операции. Если она недопустима, попытка доступа к ней приведет к выбросу BAD_INV_ORDER со стандартным кодом ошибки 14.

receive_request_
service_contexts
receive_request send_reply send_exception send_other
Унаследовано от RequestInfo:

request_id

да да да да да

operation

да да да да да

arguments

нет да1 да нет2 нет2

exceptions

нет да да да да

contexts

нет да да да да

operation_context

нет да да нет нет

result

нет нет да нет нет

response_expected

да да да да да

sync_scope

да да да да да
request_id да да да да да
operation да да да да да
arguments нет да1 да нет2 нет2
exceptions нет да да да да
contexts нет да да да да
operation_context нет да да нет нет
result нет нет да нет нет
response_expected да да да да да
sync_scope да да да да да
reply_status нет нет да да да
forward_reference нет нет нет нет да2
get_slot да да да да да
get_request_service_context да нет да да да
get_reply_service_context нет нет да да да
Специфичные для ServerRequestInfo:
sending_exception нет нет нет да нет
object_id нет да да да3 да3
adapter_id нет да да да3 да3
server_id нет да да да да
orb_id нет да да да да
adapter_name нет да да да да
target_most_derived_interface нет да нет4 нет4 нет4
get_server_policy да да да да да
set_slot да да да да да
target_is_a нет да нет4 нет4 нет4
add_reply_service_context да да да да да
  1. Когда ServerRequestInfo передаётся в receive_request, в списке есть запись для каждого аргумента, будь то входной, входно-выходной или выходной. Но доступны только входные и входно-выходные аргументы.
  2. Если атрибут reply_status не LOCATION_FORWARD, доступ к этому атрибуту вызовет BAD_INV_ORDER со стандартным кодом ошибки 14.
  3. Если локатор серванта вызвал переадресацию или выбросил исключение, этот атрибут/операция может быть недоступен в этой точке перехвата. Будет выброшено NO_RESOURCES со стандартным кодом ошибки 1, если он недоступен.
  4. Операция недоступна в данной точке перехвата, потому что необходимая информация требует доступа к серванту целевого объекта, который может быть больше недоступен для ORB. Например, если адаптер объекта — это POA, который использует ServantLocator, ORB вызывает точку перехвата после вызова ServantLocator.postinvoke()
  5. .
См. также:
ServerRequestInterceptor

Методы

Модификатор и тип Метод и описание
byte[] adapter_id()

Возвращает непрозрачный идентификатор адаптера объекта.

String[] adapter_name()

Возвращает последовательность строк, идентифицирующих экземпляр адаптера объекта, обрабатывающий этот запрос.

void add_reply_service_context(ServiceContext service_context, boolean replace)

Позволяет обработчикам добавить контексты сервиса в запрос.

Policy get_server_policy(int type)

Возвращает политику, действующую для данной операции для данного типа политики.

byte[] object_id()

Возвращает непрозрачный object_id, описывающий цель вызова операции.

String orb_id()

Возвращает идентификатор, использованный для создания ORB.

Any sending_exception()

Возвращает любую переменную, содержащую исключение, которое должно быть возвращено клиенту.

String server_id()

Возвращает идентификатор сервера, указанный в ORB::init с аргументом -ORBServerId.

void set_slot(int id, Any data)

Позволяет обработчику установить слот в PortableInterceptor.Current, который находится в области действия запроса.

boolean target_is_a(String id)

Возвращает true, если сервант — это данный идентификатор хранилища, false — в противном случае.

String target_most_derived_interface()

Возвращает идентификатор хранилища для наиболее производного интерфейса серванта.

Методы, унаследованные от интерфейса org.omg.PortableInterceptor.RequestInfoOperations

arguments, contexts, exceptions, forward_reference, get_reply_service_context, get_request_service_context, get_slot, operation_context, operation, reply_status, request_id, response_expected, result, sync_scope

Методы

sending_exception

Any sending_exception()

Возвращает любой, содержащий исключение, которое должно быть возвращено клиенту.

Если исключение является исключением пользователя, которое нельзя вставить в любой (например, оно неизвестно или привязки не предоставляют TypeCode), то этот атрибут будет любым, содержащим системное исключение UNKNOWN со стандартным кодом ошибки 1.

См. также:
PortableInterceptor комментарии к пакету по ограничениям / нереализованным функциям

object_id

byte[] object_id()

Возвращает непрозрачный object_id, описывающий цель вызова операции.

adapter_id

byte[] adapter_id()

Возвращает непрозрачный идентификатор адаптера объектов.

server_id

String server_id()

Возвращает идентификатор сервера, указанный при ORB::init с помощью аргумента -ORBServerId.

orb_id

String orb_id()

Возвращает идентификатор, используемый для создания ORB.

adapter_name

String[] adapter_name()

Возвращает последовательность строк, идентифицирующих экземпляр адаптера объектов, обрабатывающий этот запрос.

target_most_derived_interface

String target_most_derived_interface()

Возвращает идентификатор репозитория для самого производного интерфейса слуги.

get_server_policy

Policy get_server_policy(int type)

Возвращает политику, действующую для этой операции для данного типа политики. Возвращаемый CORBA.Policy объект должен быть только политикой, тип которой был зарегистрирован с помощью register_policy_factory.

Параметры:
type - CORBA.PolicyType, указывающий политику, которая должна быть возвращена.
Возвращает:
Полученную CORBA.Policy с заданным типом политики.
Исключения:
INV_POLICY - выбрасывается со стандартным кодом ошибки 2, если политика для заданного типа не была зарегистрирована с помощью register_policy_factory.
См. также:
ORBInitInfoOperations.register_policy_factory(int, org.omg.PortableInterceptor.PolicyFactory)

set_slot

void set_slot(int id,
              Any data)
       throws InvalidSlot

Позволяет интерцептору установить слот в PortableInterceptor.Current, который находится в области запроса. Если данные уже существуют в этом слоте, они будут перезаписаны.

Параметры:
id - Идентификатор слота.
data - Данные в виде любого, которые необходимо сохранить в этом слоте.
Исключения:
InvalidSlot - выбрасывается, если идентификатор не определяет выделенный слот.
См. также:
Current

target_is_a

boolean target_is_a(String id)

Возвращает true, если слуга имеет заданный идентификатор репозитория, и false, если нет.

Параметры:
id - Вызывающий хочет узнать, является ли слуга этим идентификатором репозитория.
Возвращает:
Является ли слуга заданным идентификатором репозитория?

add_reply_service_context

void add_reply_service_context(ServiceContext service_context,
                               boolean replace)

Позволяет интерцепторам добавлять контексты служб в запрос.

Порядок контекстов служб не объявлен. Они могут или не могут появляться в порядке их добавления.

Параметры:
service_context - IOP.ServiceContext для добавления в ответ.
replace - Указывает поведение этой операции, когда контекст службы уже существует с заданным идентификатором. Если false, то BAD_INV_ORDER с стандартным кодом ошибки 15 выбрасывается. Если true, то существующий контекст службы заменяется новым.
Исключения:
BAD_INV_ORDER - выбрасывается со стандартным кодом ошибки 15, если replace равно false, а контекст службы уже существует с заданным идентификатором.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API