Spec-Zone.ru › OpenJDK 8

Класс ServerRequest

  • java.lang.Object
    • org.omg.CORBA.ServerRequest

public abstract class ServerRequest
extends Object

Объект, который захватывает явное состояние запроса для интерфейса динамического скелета (DSI). Этот класс, краеугольный камень DSI, аналогичен объекту Request в DII.

ORB отвечает за создание этого воплощения запроса и доставку его в динамическую реализующую процедуру (DIR). Динамический слуга (DIR) создаётся путём реализации класса DynamicImplementation, который имеет единственный метод invoke. Этот метод принимает объект ServerRequest. Абстрактный класс ServerRequest определяет методы для доступа к имени метода, аргументам и контексту запроса, а также методы для установки результата запроса либо как возвращаемое значение, либо как исключение.

Суть доступа к аргументам запроса заключается в том, что DIR должен предоставить информацию о типе ожидаемых аргументов, так как нет скомпилированной информации об этом. Эта информация предоставляется через NVList, который представляет собой список объектов NamedValue. Каждый объект NamedValue содержит объект Any, который в свою очередь содержит объект TypeCode, представляющий тип аргумента.

Аналогично, информация о типе необходима для ответа, как для ожидаемого результата, так и для исключения, поэтому методы result и except принимают объект Any в качестве параметра.

См. также:
DynamicImplementation, NVList, NamedValue

Конструкторы

Конструктор и описание
ServerRequest()

Методы

Модификатор и тип Метод и описание
void arguments(NVList args)

Указывает типы параметров метода и извлекает значения аргументов «вход» и «вход-выход».

abstract Context ctx()

Возвращает информацию о контексте, указанную в IDL для операции, когда операция не является доступом к атрибуту и определение IDL операции содержит выражение контекста; в противном случае возвращает ссылку nil Context.

void except(Any any)

Устарело.

используйте set_exception()

String op_name()

Устарело.

используйте operation()

String operation()

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

void params(NVList params)

Устарело.

используйте метод arguments

void result(Any any)

Устарело.

используйте метод set_result

void set_exception(Any any)

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

void set_result(Any any)

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

ServerRequest

public ServerRequest()

Методы

op_name

@Deprecated
public String op_name()

Устаревшее. Используйте operation()

Возвращает имя вызываемой операции. Согласно правилам OMG IDL, эти имена должны быть уникальными среди всех операций, поддерживаемых интерфейсом этого объекта «наиболее производного» уровня. Обратите внимание, что имена операций для получения и установки атрибутов соответственно равны _get_<attribute_name> и _set_<attribute_name>.

Возвращает:
имя вызываемой операции

operation

public String operation()

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

Возвращает имя вызываемой операции. Согласно правилам OMG IDL, эти имена должны быть уникальными среди всех операций, поддерживаемых интерфейсом этого объекта «наиболее производного» уровня. Обратите внимание, что имена операций для получения и установки атрибутов соответственно равны _get_<attribute_name> и _set_<attribute_name>.

Возвращает:
имя вызываемой операции
См. также:
CORBA комментарии к пакету для нереализованных функций

params

@Deprecated
public void params(NVList params)

Устаревшее. Используйте метод arguments

Определяет типы параметров метода и получает значения аргументов «in» и «inout».

Обратите внимание, что этот метод устарел; используйте метод arguments вместо него.

Если не вызывается метод set_exception, DIR должен вызвать этот метод ровно один раз, даже если сигнатура метода не содержит параметров. После вызова методов arguments или set_exception, вызов arguments на том же объекте ServerRequest приведет к возникновению системного исключения BAD_INV_ORDER. DIR должен передать методу arguments объект NVList, инициализированный TypeCodes и флагами, описывающими типы параметров операции в порядке их появления в спецификации IDL (слева направо). Потенциально другой объект NVList будет возвращен методом arguments, с предоставленными значениями аргументов «in» и «inout». Если не вызывается метод set_exception, DIR должен заполнить возвращённый объект NVList значениями для аргументов «out» перед возвратом, и может также изменить возвращаемые значения для аргументов «inout».

Параметры:
params - аргументы метода в виде объекта NVList

arguments

public void arguments(NVList args)

Определяет типы параметров метода и получает значения аргументов «in» и «inout». Если не вызывается метод set_exception, DIR должен вызвать этот метод ровно один раз, даже если сигнатура метода не содержит параметров. После вызова методов arguments или set_exception, вызов arguments на том же объекте ServerRequest приведет к возникновению системного исключения BAD_INV_ORDER. DIR должен передать методу arguments объект NVList, инициализированный TypeCodes и флагами, описывающими типы параметров операции в порядке их появления в спецификации IDL (слева направо). Потенциально другой объект NVList будет возвращен методом arguments, с предоставленными значениями аргументов «in» и «inout». Если не вызывается метод set_exception, DIR должен заполнить возвращённый объект NVList значениями для аргументов «out» перед возвратом, и может также изменить возвращаемые значения для аргументов «inout».

Параметры:
args - аргументы метода в виде NVList
См. также:
CORBA комментарии к пакету для нереализованных функций

result

@Deprecated
public void result(Any any)

Устаревшее. Используйте метод set_result

Определяет любое возвращаемое значение вызова.

Обратите внимание, что этот метод устарел; используйте метод set_result вместо него.

Если не вызывается метод set_exception, если вызываемый метод имеет тип результата, отличный от void, метод set_result должен быть вызван ровно один раз перед возвратом DIR. Если операция имеет тип результата void, метод set_result может быть вызван один раз с объектом Any, тип которого tk_void. Вызов метода set_result до вызова метода arguments или после вызова методов set_result или set_exception приведет к исключению BAD_INV_ORDER. Вызов метода set_result без предварительного вызова метода ctx, когда операция IDL содержит выражение контекста или когда NVList, переданный в аргументы, не описывал все параметры, переданные клиентом, может привести к системному исключению MARSHAL.

Параметры:
any - объект Any, содержащий возвращаемое значение

set_result

public void set_result(Any any)

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

Определяет любое возвращаемое значение вызова. Если не вызывается метод set_exception, если вызываемый метод имеет тип результата, отличный от void, метод set_result должен быть вызван ровно один раз перед возвратом DIR. Если операция имеет тип результата void, метод set_result может быть вызван один раз с объектом Any, тип которого tk_void. Вызов метода set_result до вызова метода arguments или после вызова методов set_result или set_exception приведет к исключению BAD_INV_ORDER. Вызов метода set_result без предварительного вызова метода ctx, когда операция IDL содержит выражение контекста или когда NVList, переданный в аргументы, не описывал все параметры, переданные клиентом, может привести к системному исключению MARSHAL.

Параметры:
any - объект Any, содержащий возвращаемое значение
См. также:
CORBA комментарии к пакету для нереализованных функций

except

@Deprecated
public void except(Any any)

Устаревшее. Используйте set_exception()

DIR может вызвать set_exception в любое время, чтобы вернуть исключение клиенту. Any, переданный в set_exception, должен содержать либо системное исключение, либо пользовательское исключение, указанное в выражении raises вызываемой операции IDL. Передача Any, не содержащего исключения, приведет к системному исключению BAD_PARAM. Передача не указанного пользовательского исключения приведет к тому, что DIR получит системное исключение BAD_PARAM или клиент получит системное исключение UNKNOWN_EXCEPTION.

Параметры:
any - объект Any, содержащий исключение

set_exception

public void set_exception(Any any)

Выбрасывает исключение org.omg.CORBA.NO_IMPLEMENT.

Возвращает заданное исключение клиенту. Этот метод вызывается DIR, который может вызвать его в любое время. Объект Any, переданный в этот метод, должен содержать либо системное исключение, либо одно из пользовательских исключений, указанных в определении IDL вызываемой операции. Передача объекта Any, не содержащего исключения, вызовет системное исключение BAD_PARAM. Передача не указанного пользовательского исключения приведет к тому, что DIR получит системное исключение BAD_PARAM или клиент получит системное исключение UNKNOWN_EXCEPTION.

Параметры:
any - объект Any, содержащий исключение
Выбрасывает:
BAD_PARAM - если переданный объект Any не содержит исключение или исключение не указано
UNKNOWN_EXCEPTION - если переданное исключение является не указанным пользовательским исключением, и DIR не получил исключения BAD_PARAM
См. также:
CORBA комментарии к пакету для нереализованных функций

ctx

public abstract Context ctx()

Возвращает информацию о контексте, указанную в IDL для операции, когда операция не является доступом к атрибуту и определение операции IDL содержит выражение контекста; в противном случае возвращает нулевую ссылку Context. Вызов метода ctx до вызова метода arguments или после вызова методов ctx, set_result, или set_exception приведет к возникновению системного исключения BAD_INV_ORDER.

Возвращает:
объект контекста, который будет использоваться для разрешения любых строк контекста, значения которых необходимо отправить с вызовом.
Выбрасывает:
BAD_INV_ORDER - если (1) метод ctx вызывается до метода arguments или (2) метод ctx вызывается после вызова set_result или set_exception

© 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