Класс ORB
- java.lang.Object
-
- org.omg.CORBA.ORB
- Direct Known Subclasses:
- ORB
public abstract class ORB extends Object
Класс, предоставляющий API для функций брокера запросов объектов CORBA. Класс ORB также предоставляет API "подключаемых реализаций ORB", позволяющие использовать реализацию ORB другого производителя.
ORB позволяет объектам CORBA взаимодействовать друг с другом, соединяя объекты, делающие запросы (клиенты), с объектами, обрабатывающими запросы (серверы).
Класс ORB, который инкапсулирует общие функциональные возможности CORBA, выполняет следующие действия: (Обратите внимание, что пункты 5 и 6, включающие большинство методов класса ORB, обычно используются с Dynamic Invocation
Interface (DII) и Dynamic Skeleton Interface (DSI). Эти интерфейсы могут быть использованы разработчиком напрямую, но чаще всего используются ORB внутри и не видны обычному программисту.)
- инициализирует реализацию ORB, предоставляя значения для предопределенных свойств и параметров среды
- получает начальные ссылки на объекты таких сервисов, как NameService, используя метод
resolve_initial_references - преобразует ссылки на объекты в строки и обратно
- подключает ORB к серванту (экземпляру реализации объекта CORBA) и отключает ORB от серванта
- создает объекты, такие как
-
TypeCode -
Any -
NamedValue -
Context -
Environment - списки (такие как
NVList) содержащие эти объекты
-
- отправляет несколько сообщений в DII
Класс ORB может использоваться для получения ссылок на объекты, реализованные в любой точке сети.
Приложение или апплет получают доступ к среде CORBA, инициализируя себя в ORB с помощью одного из трех init методов. Два из трех методов используют свойства (сопоставления имени со значением), показанные в таблице ниже.
| Имя свойства | Значение свойства |
|---|---|
| org.omg.CORBA.ORBClass | имя класса реализации ORB |
| org.omg.CORBA.ORBSingletonClass | имя класса ORB, возвращаемого init()
|
Эти свойства позволяют "подключить" реализацию ORB другого производителя.
При создании экземпляра ORB имя класса реализации ORB находится в следующем стандартном порядке поиска:
- проверить в параметрах апплета или массиве строк приложения, если таковые имеются
- проверить в параметре свойств, если таковой имеется
- проверить в системных свойствах
- проверить в файле orb.properties, расположенном в каталоге user.home (если таковой имеется)
- проверить в файле orb.properties, расположенном в каталоге java.home/lib (если таковой имеется)
- вернуться к жестко заданному поведению по умолчанию (использовать реализацию Java IDL)
Обратите внимание, что Java IDL предоставляет реализацию по умолчанию для полнофункционального ORB и для ORB Singleton. Когда методу init не передаются параметры, возвращается по умолчанию Singleton ORB. Когда методу init передаются параметры, но класс ORB не указан, возвращается реализация Java IDL ORB.
Следующий фрагмент кода создает объект ORB, инициализированный с использованием по умолчанию Singleton ORB. Этот ORB имеет ограниченную реализацию, чтобы предотвратить злонамеренным апплетам делать что-либо помимо создания кодов типов. Он называется синглтоном, потому что существует только один экземпляр для всей виртуальной машины.
ORB orb = ORB.init();
Следующий фрагмент кода создает объект ORB для приложения. Параметр args представляет аргументы, переданные методу main приложения. Поскольку свойство указывает класс ORB как "SomeORBImplementation", новый ORB будет инициализирован с этой реализацией ORB. Если бы p был null, и аргументы не указали класс ORB, новый ORB был бы инициализирован с реализацией Java IDL по умолчанию.
Properties p = new Properties();
p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation");
ORB orb = ORB.init(args, p); Следующий фрагмент кода создает объект ORB для апплета, переданного в качестве первого параметра. Если заданный апплет не указывает класс ORB, новый ORB будет инициализирован с реализацией Java IDL по умолчанию.
ORB orb = ORB.init(myApplet, null);
Приложение или апплет могут быть инициализированы в одном или нескольких ORB. Инициализация ORB — это вызов загрузки в мир CORBA.
- Since:
- JDK1.2
Конструкторы
| Конструктор и описание |
|---|
ORB() |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
connect(Object obj) Подключает заданный объект серванта (объект Java, являющийся экземпляром класса реализации сервера) к ORB. |
TypeCode |
create_abstract_interface_tc(String id,
String name) Создаёт объект |
abstract TypeCode |
create_alias_tc(String id,
String name,
TypeCode original_type) Создаёт объект |
abstract Any |
create_any() Создаёт объект IDL |
abstract TypeCode |
create_array_tc(int length,
TypeCode element_type) Создаёт объект |
DynAny |
create_basic_dyn_any(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
abstract ContextList |
create_context_list() Создаёт пустой объект |
DynAny |
create_dyn_any(Any value) Устарело. Используйте новый API DynAnyFactory вместо него. |
DynArray |
create_dyn_array(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
DynEnum |
create_dyn_enum(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
DynSequence |
create_dyn_sequence(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
DynStruct |
create_dyn_struct(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
DynUnion |
create_dyn_union(TypeCode type) Устарело. Используйте новый API DynAnyFactory вместо него. |
abstract TypeCode |
create_enum_tc(String id,
String name,
String[] members) Создаёт объект |
abstract Environment |
create_environment() Создаёт объект |
abstract ExceptionList |
create_exception_list() Создаёт пустой объект |
abstract TypeCode |
create_exception_tc(String id,
String name,
StructMember[] members) Создаёт объект |
TypeCode |
create_fixed_tc(short digits,
short scale) Создаёт объект |
abstract TypeCode |
create_interface_tc(String id,
String name) Создаёт объект |
abstract NVList |
create_list(int count) Выделяет память для |
abstract NamedValue |
create_named_value(String s,
Any any,
int flags) Создаёт объект |
TypeCode |
create_native_tc(String id,
String name) Создаёт объект |
NVList |
create_operation_list(Object oper) Создаёт объект |
abstract OutputStream |
create_output_stream() Создаёт новый объект |
Policy |
create_policy(int type,
Any val) Может быть вызван для создания новых экземпляров объектов политик определённого типа с заданным начальным состоянием. |
abstract TypeCode |
create_recursive_sequence_tc(int bound,
int offset) Устарело. Используйте комбинацию create_recursive_tc и create_sequence_tc вместо этого. |
TypeCode |
create_recursive_tc(String id) Создаёт рекурсивный объект |
abstract TypeCode |
create_sequence_tc(int bound,
TypeCode element_type) Создаёт объект |
abstract TypeCode |
create_string_tc(int bound) Создаёт объект |
abstract TypeCode |
create_struct_tc(String id,
String name,
StructMember[] members) Создаёт объект |
abstract TypeCode |
create_union_tc(String id,
String name,
TypeCode discriminator_type,
UnionMember[] members) Создаёт объект |
TypeCode |
create_value_box_tc(String id,
String name,
TypeCode boxed_type) Создаёт объект |
TypeCode |
create_value_tc(String id,
String name,
short type_modifier,
TypeCode concrete_base,
ValueMember[] members) Создаёт объект |
abstract TypeCode |
create_wstring_tc(int bound) Создаёт объект |
void |
destroy() Уничтожает ORB для освобождения его ресурсов. |
void |
disconnect(Object obj) Отключает заданный объект серванта от ORB. |
Current |
get_current() Устарело. используйте |
abstract Context |
get_default_context() Получает объект по умолчанию |
abstract Request |
get_next_response() Получает следующий экземпляр |
abstract TypeCode |
get_primitive_tc(TCKind tcKind) Возвращает объект |
boolean |
get_service_information(short service_type,
ServiceInformationHolder service_info) Используется для получения информации о CORBA-средствах и службах, поддерживаемых этим ORB. |
static ORB |
init() Возвращает объект-синглтон |
static ORB |
init(Applet app,
Properties props) Создаёт новый экземпляр |
static ORB |
init(String[] args,
Properties props) Создаёт новый экземпляр |
abstract String[] |
list_initial_services() Возвращает список первоначально доступных CORBA-ссылок на объекты, таких как "NameService" и "InterfaceRepository". |
abstract String |
object_to_string(Object obj) Преобразует заданную CORBA-ссылку на объект в строку. |
void |
perform_work() Выполняет зависящую от реализации единицу работы, если вызвана основным потоком. |
abstract boolean |
poll_next_response() Определяет, есть ли ответы для отложенных (асинхронных) вызовов. |
abstract Object |
resolve_initial_references(String object_name) Разрешает конкретную ссылку на объект из набора доступных начальных имён служб. |
void |
run() Эта операция блокирует текущий поток до тех пор, пока ORB не завершит процесс завершения, инициированный, когда какой-то поток вызывает |
abstract void |
send_multiple_requests_deferred(Request[] req) Отправляет несколько асинхронных запросов динамического интерфейса (DII). |
abstract void |
send_multiple_requests_oneway(Request[] req) Отправляет несколько асинхронных запросов динамического интерфейса (DII) без ожидания ответов. |
protected abstract void |
set_parameters(Applet app,
Properties props) Позволяет инициализировать реализацию ORB с заданным апплетом и параметрами. |
protected abstract void |
set_parameters(String[] args,
Properties props) Позволяет инициализировать реализацию ORB с заданными параметрами и свойствами. |
void |
shutdown(boolean wait_for_completion) Инструктирует ORB выполнить завершение, что приводит к завершению всех адаптеров объектов в подготовке к уничтожению. |
abstract Object |
string_to_object(String str) Преобразует строку, созданную методом |
boolean |
work_pending() Возвращает |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
ORB
public ORB()
Методы
init
public static ORB init()
Возвращает объект ORB синглтон. Этот метод всегда возвращает один и тот же экземпляр ORB, который является экземпляром класса, описанного в системной переменной org.omg.CORBA.ORBSingletonClass.
Этот метод без аргументов init используется в основном в качестве фабрики для объектов TypeCode, которые используются классами Helper для реализации метода type. Он также используется для создания объектов Any, которые используются для описания меток union (как часть создания объекта
TypeCode для union).
Этот метод не предназначен для использования апплетами, и в случае его вызова в среде апплета возвращаемый ORB ограничен, так что он может использоваться только как фабрика для объектов TypeCode. Любые создаваемые им объекты TypeCode могут безопасно использоваться между недоверенными апплетами.
Если ORB создается этим методом из апплета, будет выброшено системное исключение, если вызываются методы, отличные от методов создания объектов TypeCode.
- Возвращает:
- синглтон ORB
init
public static ORB init(String[] args,
Properties props) Создает новый экземпляр ORB для автономного приложения. Этот метод может вызываться только из приложений и каждый раз возвращает новый полностью функциональный объект ORB.
- Параметры:
-
args- аргументы командной строки для методаmainприложения; может бытьnull -
props- свойства, специфичные для приложения; могут бытьnull - Возвращает:
- новый созданный экземпляр ORB
init
public static ORB init(Applet app,
Properties props) Создает новый экземпляр ORB для апплета. Этот метод может вызываться только из апплетов и каждый раз возвращает новый полностью функциональный объект ORB.
- Параметры:
-
app- апплет; может бытьnull -
props- свойства, специфичные для апплета; могут бытьnull - Возвращает:
- новый созданный экземпляр ORB
set_parameters
protected abstract void set_parameters(String[] args,
Properties props) Разрешает инициализировать реализацию ORB заданными параметрами и свойствами. Этот метод, используемый только в приложениях, реализуется подклассами ORB и вызывается соответствующим методом init для передачи параметров.
- Параметры:
-
args- аргументы командной строки для методаmainприложения; могут бытьnull -
props- свойства, специфичные для приложения; могут бытьnull
set_parameters
protected abstract void set_parameters(Applet app,
Properties props) Разрешает инициализировать реализацию ORB заданным апплетом и параметрами. Этот метод, используемый только в апплетах, реализуется подклассами ORB и вызывается соответствующим методом init для передачи параметров.
- Параметры:
-
app- апплет; может бытьnull -
props- свойства, специфичные для апплета; могут бытьnull
connect
public void connect(Object obj)
Подключает заданный объект сервера (объект Java, являющийся экземпляром класса реализации сервера) к ORB. Класс сервера должен расширять класс ImplBase соответствующий интерфейсу, поддерживаемому сервером. Таким образом, сервер должен быть ссылкой на объект CORBA и наследоваться от org.omg.CORBA.Object. Серверы, созданные пользователем, могут начать получать удалённые вызовы после вызова метода connect. Сервер также может быть автоматически и неявно подключен к ORB, если он передаётся как параметр IDL в вызове метода IDL на удалённый объект, то есть если объект сервера должен быть закодирован и отправлен за пределы адресного пространства процесса.
Вызов метода connect не оказывает никакого влияния, когда объект сервера уже подключен к ORB.
Устарело OMG в пользу API адаптеров портативных объектов.
- Параметры:
-
obj- Ссылка на объект сервера
destroy
public void destroy()
Уничтожает ORB, чтобы освободить его ресурсы. Любая операция, вызываемая на уничтоженную ссылку ORB, выбросит исключение OBJECT_NOT_EXIST. После уничтожения ORB, другой вызов init с тем же ORBid вернёт ссылку на вновь созданный ORB.
Если destroy вызывается на ORB, который ещё не завершён, он запустит процесс завершения и заблокируется, до тех пор, пока ORB не завершит работу, прежде чем уничтожит ORB.
Если приложение вызовет destroy в потоке, который в данный момент обслуживает вызов, то будет выброшено системное исключение BAD_INV_ORDER с кодом OMG minor 3, так как блокировка приведёт к тупиковой ситуации.
Для максимальной переносимости и избежания утечек ресурсов, приложение должно всегда вызывать shutdown и destroy на всех экземплярах ORB перед завершением работы.
- Выбрасывает:
-
BAD_INV_ORDER- если текущий поток обслуживает вызов
disconnect
public void disconnect(Object obj)
Отключает заданный объект сервера от ORB. После возврата этого метода ORB отклонит входящие удалённые запросы для отключённого сервера и отправит исключение org.omg.CORBA.OBJECT_NOT_EXIST обратно удалённому клиенту. Таким образом, объект, с точки зрения удалённых клиентов, кажется уничтоженным. Однако, обратите внимание, что локальные запросы, выпущенные с использованием сервера напрямую, не проходят через ORB; следовательно, они будут продолжать обрабатываться сервером.
Вызов метода disconnect не имеет эффекта, если сервер не подключен к ORB.
Устарело OMG в пользу API адаптеров портативных объектов.
- Параметры:
-
obj- Объект сервера, который будет отключен от ORB
list_initial_services
public abstract String[] list_initial_services()
Возвращает список первоначально доступных ссылок на объекты CORBA, таких как «NameService» и «InterfaceRepository».
- Возвращает:
- массив объектов
String, представляющих ссылки на объекты CORBA-сервисов, первоначально доступных с этим ORB
resolve_initial_references
public abstract Object resolve_initial_references(String object_name)
throws InvalidName Разрешает определённую ссылку на объект из набора доступных начальных имён сервисов.
- Параметры:
-
object_name- имя начального сервиса в виде строки - Возвращает:
- ссылка на объект, связанный с данным именем
- Выбрасывает:
-
InvalidName- если данное имя не связано с известным сервисом
object_to_string
public abstract String object_to_string(Object obj)
Преобразует заданную ссылку на объект CORBA в строку. Обратите внимание, что формат этой строки определён IIOP, что позволяет преобразовывать строки, сгенерированные другим ORB, обратно в ссылку на объект.
Результирующий объект String может быть сохранён или передан любым способом, которым может быть обработан объект String.
- Параметры:
-
obj- ссылка на объект для преобразования в строку - Возвращает:
- строка, представляющая ссылку на объект
string_to_object
public abstract Object string_to_object(String str)
Преобразует строку, произведённую методом object_to_string, обратно в ссылку на объект CORBA.
- Параметры:
-
str- строка, которая должна быть преобразована обратно в ссылку на объект. Она должна быть результатом преобразования ссылки на объект в строку с помощью методаobject_to_string. - Возвращает:
- ссылка на объект
create_list
public abstract NVList create_list(int count)
Выделяет NVList с (вероятно) достаточным пространством для указанного количества объектов NamedValue. Обратите внимание, что указанный размер является лишь подсказкой для помощи в распределении памяти и не подразумевает максимальный размер списка.
- Параметры:
-
count- предлагаемое количество объектовNamedValue, для которых следует выделить память - Возвращает:
- новый созданный
NVList - См. также:
NVList
create_operation_list
public NVList create_operation_list(Object oper)
Создаёт NVList инициализированный описаниями аргументов для операции, описанной в данном объекте OperationDef. Этот объект OperationDef получен из Репозитория Интерфейсов. Аргументы в возвращаемом объекте NVList расположены в том же порядке, что и в исходном определении IDL-операции, что позволяет использовать список в динамических запросах вызовов.
- Параметры:
-
oper- объектOperationDefдля создания списка - Возвращает:
- новый созданный объект
NVList, содержащий описания аргументов метода, описанного в заданном объектеOperationDef - См. также:
NVList
create_named_value
public abstract NamedValue create_named_value(String s,
Any any,
int flags) Создаёт объект NamedValue с использованием заданного имени, значения и флагов режима аргумента.
Объект NamedValue служит (1) параметром или возвращаемым значением или (2) свойством контекста. Он может использоваться сам по себе или как элемент в объекте NVList.
- Параметры:
-
s- имя объектаNamedValue -
any- значениеAny, которое должно быть вставлено в объектNamedValue -
flags- флаги режима аргумента для объектаNamedValue: один изARG_IN.value,ARG_OUT.value, илиARG_INOUT.value. - Возвращает:
- новый созданный объект
NamedValue - См. также:
NamedValue
create_exception_list
public abstract ExceptionList create_exception_list()
Создаёт пустой объект ExceptionList.
- Возвращает:
- новый созданный
ExceptionListобъект
create_context_list
public abstract ContextList create_context_list()
Создаёт пустой ContextList объект.
- Возвращает:
- новый созданный
ContextListобъект - См. также:
-
ContextList,Context
get_default_context
public abstract Context get_default_context()
Получает Context объект по умолчанию.
- Возвращает:
- объект
Contextпо умолчанию - См. также:
Context
create_environment
public abstract Environment create_environment()
Создаёт объект Environment.
- Возвращает:
- новый созданный
Environmentобъект - См. также:
Environment
create_output_stream
public abstract OutputStream create_output_stream()
Создаёт новый org.omg.CORBA.portable.OutputStream объект, в который во время вызова метода IDL можно поместить параметры метода.
- Возвращает:
- новый созданный
org.omg.CORBA.portable.OutputStreamобъект
send_multiple_requests_oneway
public abstract void send_multiple_requests_oneway(Request[] req)
Отправляет несколько асинхронных запросов (DII) без ожидания ответа. Обратите внимание, что для вызовов oneway не гарантируется достижение сервера.
- Параметры:
-
req- массив объектов запроса
send_multiple_requests_deferred
public abstract void send_multiple_requests_deferred(Request[] req)
Отправляет несколько асинхронных запросов (DII).
- Параметры:
-
req- массив объектовRequest
poll_next_response
public abstract boolean poll_next_response()
Определяет, есть ли ответы на отложенные (асинхронные) вызовы.
- Возвращает:
-
true, если ответ доступен;falseв противном случае
get_next_response
public abstract Request get_next_response()
throws WrongTransaction Получает следующий Request экземпляр, для которого был получен ответ.
- Возвращает:
- следующий
Requestобъект, готовый с ответом - Исключения:
-
WrongTransaction- если методget_next_responseвызывается из области транзакции, отличающейся от той, из которой был отправлен исходный запрос. Подробности см. в спецификации OMG Transaction Service.
get_primitive_tc
public abstract TypeCode get_primitive_tc(TCKind tcKind)
Возвращает объект TypeCode , представляющий заданный примитивный тип IDL.
- Параметры:
-
tcKind- экземплярTCKind, соответствующий требуемому примитивному типу - Возвращает:
- запрашиваемый
TypeCodeобъект
create_struct_tc
public abstract TypeCode create_struct_tc(String id,
String name,
StructMember[] members) Создаёт объект TypeCode , представляющий IDL struct. Объект TypeCode инициализируется заданным идентификатором, именем и членами.
- Параметры:
-
id- идентификатор репозитория дляstruct -
name- имяstruct -
members- массив, описывающий членыstruct - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLstruct
create_union_tc
public abstract TypeCode create_union_tc(String id,
String name,
TypeCode discriminator_type,
UnionMember[] members) Создаёт объект TypeCode , представляющий IDL union. Объект TypeCode инициализируется заданным идентификатором, именем, типом дискриминатора и членами.
- Параметры:
-
id- идентификатор репозиторияunion -
name- имяunion -
discriminator_type- тип дискриминатораunion -
members- массив, описывающий членыunion - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLunion
create_enum_tc
public abstract TypeCode create_enum_tc(String id,
String name,
String[] members) Создаёт объект TypeCode , представляющий IDL enum. Объект TypeCode инициализируется заданным идентификатором, именем и членами.
- Параметры:
-
id- идентификатор репозитория дляenum -
name- имя дляenum -
members- массив, описывающий членыenum - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLenum
create_alias_tc
public abstract TypeCode create_alias_tc(String id,
String name,
TypeCode original_type) Создаёт объект TypeCode , представляющий IDL alias (typedef). Объект TypeCode инициализируется заданным идентификатором, именем и исходным типом.
- Параметры:
-
id- идентификатор репозитория для псевдонима -
name- имя псевдонима -
original_type- объектTypeCode, описывающий исходный тип, для которого это псевдоним - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLalias
create_exception_tc
public abstract TypeCode create_exception_tc(String id,
String name,
StructMember[] members) Создаёт объект TypeCode , представляющий IDL exception. Объект TypeCode инициализируется заданным идентификатором, именем и членами.
- Параметры:
-
id- идентификатор репозитория дляexception -
name- имя дляexception -
members- массив, описывающий членыexception - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLexception
create_interface_tc
public abstract TypeCode create_interface_tc(String id,
String name) Создаёт объект TypeCode , представляющий IDL interface. Объект TypeCode инициализируется заданным идентификатором и именем.
- Параметры:
-
id- идентификатор репозитория для интерфейса -
name- имя интерфейса - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLinterface
create_string_tc
public abstract TypeCode create_string_tc(int bound)
Создаёт объект TypeCode , представляющий ограниченный IDL string. Объект TypeCode инициализируется заданным пределом, представляющим максимальную длину строки. Ноль означает, что строка, описываемая этим типом кода, неограничена.
- Параметры:
-
bound- предел дляstring; не может быть отрицательным - Возвращает:
- новый созданный
TypeCodeобъект, описывающий ограниченный IDLstring - Исключения:
-
BAD_PARAM- если предел имеет отрицательное значение
create_wstring_tc
public abstract TypeCode create_wstring_tc(int bound)
Создаёт объект TypeCode , представляющий ограниченный IDL wstring (широкую строку). Объект TypeCode инициализируется заданным пределом, представляющим максимальную длину широкой строки. Ноль означает, что строка, описываемая этим типом кода, неограничена.
- Параметры:
-
bound- предел дляwstring; не может быть отрицательным - Возвращает:
- новый созданный
TypeCodeобъект, описывающий ограниченный IDLwstring - Исключения:
-
BAD_PARAM- если предел имеет отрицательное значение
create_sequence_tc
public abstract TypeCode create_sequence_tc(int bound,
TypeCode element_type) Создаёт объект TypeCode , представляющий IDL sequence. Объект TypeCode инициализируется заданным пределом и типом элемента.
- Параметры:
-
bound- предел дляsequence, 0, если неограничен -
element_type- объектTypeCode, описывающий элементы, содержащиеся вsequence - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLsequence
create_recursive_sequence_tc
@Deprecated
public abstract TypeCode create_recursive_sequence_tc(int bound,
int offset) Устарело. Используйте сочетание create_recursive_tc и create_sequence_tc вместо этого
Создаёт объект TypeCode , представляющий рекурсивный IDL sequence.
Для IDL struct узла в следующем фрагменте кода параметр смещения для создания его последовательности будет 1:
Struct Node {
long value;
Sequence <Node> subnodes;
};
- Параметры:
-
bound- предел для последовательности, 0, если неограничен -
offset- индекс вложенного объектаTypeCode, описывающего элементы этой последовательности - Возвращает:
- новый созданный
TypeCodeобъект, описывающий рекурсивную последовательность - См. также:
-
create_recursive_tc,create_sequence_tc
create_array_tc
public abstract TypeCode create_array_tc(int length,
TypeCode element_type) Создаёт объект TypeCode , представляющий IDL array. Объект TypeCode инициализируется заданной длиной и типом элемента.
- Параметры:
-
length- длинаarray -
element_type- объектTypeCode, описывающий тип элемента, содержащегося вarray - Возвращает:
- новый созданный
TypeCodeобъект, описывающий IDLarray
create_native_tc
public TypeCode create_native_tc(String id,
String name) Создайте объект TypeCode для нативного типа IDL.
- Параметры:
-
id- логический идентификатор для нативного типа. -
name- имя нативного типа. - Возвращает:
- запрошенный TypeCode.
create_abstract_interface_tc
public TypeCode create_abstract_interface_tc(String id,
String name) Создайте объект TypeCode для абстрактного интерфейса IDL.
- Параметры:
-
id- логический идентификатор для типа абстрактного интерфейса. -
name- имя типа абстрактного интерфейса. - Возвращает:
- запрошенный TypeCode.
create_fixed_tc
public TypeCode create_fixed_tc(short digits,
short scale) Создайте объект TypeCode для фиксированного типа IDL.
- Параметры:
-
digits- указывает общее количество десятичных знаков в числе и должно быть от 1 до 31 включительно. -
scale- указывает позицию десятичной точки. - Возвращает:
- запрошенный TypeCode.
create_value_tc
public TypeCode create_value_tc(String id,
String name,
short type_modifier,
TypeCode concrete_base,
ValueMember[] members) Создайте объект TypeCode для типа значения IDL. Параметр concrete_base — это TypeCode для непосредственного конкретного базового типа значения, для которого создается TypeCode. Он может быть null, если тип значения не имеет конкретной базы.
- Параметры:
-
id- логический идентификатор для типа значения. -
name- имя типа значения. -
type_modifier- один из константных модификаторов типа значения: VM_NONE, VM_CUSTOM, VM_ABSTRACT или VM_TRUNCATABLE -
concrete_base- объектTypeCode, описывающий конкретную базовую часть типа значения -
members- массив, содержащий члены типа значения - Возвращает:
- запрошенный TypeCode
create_recursive_tc
public TypeCode create_recursive_tc(String id)
Создайте рекурсивный объект TypeCode , который служит заполнительком для конкретного TypeCode во время процесса создания TypeCode, содержащего рекурсию. Параметр id указывает идентификатор хранилища типа, для которого рекурсивный TypeCode служит заполнителем. После того, как рекурсивный TypeCode был должным образом встроен в окружающий TypeCode, соответствующий указанному идентификатору хранилища, он будет работать как обычный TypeCode. Вызов операций на рекурсивном TypeCode до его встраивания в окружающий TypeCode приведет к исключению BAD_TYPECODE.
Например, следующее объявление типа IDL содержит рекурсию:
Struct Node {
Sequence<Node> subnodes;
}; Для создания TypeCode для структуры Node вы должны вызвать операции создания TypeCode, как показано ниже:
String nodeID = "IDL:Node:1.0";
TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID));
StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) };
TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members); Также обратите внимание, что следующее является незаконным объявлением типа IDL:
Struct Node {
Node next;
}; Рекурсивные типы могут появляться только внутри последовательностей, которые могут быть пустыми. Таким образом, избегаются проблемы с маршалингом при передаче структуры в Any.
- Параметры:
-
id- логический идентификатор ссылки на тип - Возвращает:
- запрошенный TypeCode
create_value_box_tc
public TypeCode create_value_box_tc(String id,
String name,
TypeCode boxed_type) Создает объект TypeCode для контейнера значения IDL.
- Параметры:
-
id- логический идентификатор для типа значения -
name- имя типа значения -
boxed_type- TypeCode для типа - Возвращает:
- запрошенный TypeCode
create_any
public abstract Any create_any()
Создает объект IDL Any , инициализированный содержанием объекта Typecode , поле которого kind установлено в значение TCKind.tc_null.
- Возвращает:
- новый созданный объект
Any
get_current
@Deprecated public Current get_current()
Устарело. Используйте resolve_initial_references.
Извлекает объект Current . Интерфейс Current используется для управления потоко-специфической информацией для использования службами, такими как транзакции и безопасность.
- Возвращает:
- новый созданный объект
Current - См. также:
CORBAкомментарии к пакету для нереализованных функций
run
public void run()
Данная операция блокирует текущий поток, пока ORB не завершит процесс завершения, инициированный, когда какой-то поток вызывает shutdown. Его могут использовать несколько потоков, которые получают уведомление о завершении ORB.
shutdown
public void shutdown(boolean wait_for_completion)
Инструктирует ORB выполнить завершение, что вызывает завершение всех адаптеров объектов в подготовке к уничтожению.
Если параметр wait_for_completion имеет значение true, эта операция блокируется, пока все обработки ORB (включая обработку текущих запросов, деактивацию объектов и другие операции адаптеров объектов) не будут завершены. Если приложение делает это в потоке, который в настоящее время обслуживает вызов, будет брошено исключение системы BAD_INV_ORDER с кодом незначительной ошибки OMG 3, так как блокировка приведет к тупику.
Если параметр wait_for_completion равен FALSE, завершение может не завершиться при возврате.
Пока ORB находится в процессе завершения, ORB функционирует нормально, обслуживая входящие и исходящие запросы до завершения всех запросов. После завершения ORB, операции управления ссылками на объекты могут быть вызваны на ORB или любой ссылке на объект, полученной от него. Приложение также может вызвать операцию destroy на самом ORB. Вызов любой другой операции приведет к исключению системы BAD_INV_ORDER с кодом незначительной ошибки OMG 4.
Метод ORB.run вернется после вызова shutdown.
- Параметры:
-
wait_for_completion-trueесли вызов должен блокироваться до завершения завершения;falseесли он должен возвращаться немедленно - Исключения:
-
BAD_INV_ORDER- если текущий поток обслуживает вызов
work_pending
public boolean work_pending()
Возвращает true , если ORB нуждается в основном потоке для выполнения некоторой работы, и false , если ORB не нуждается в основном потоке.
- Возвращает:
-
true, если ожидается работа, что означает, что ORB нуждается в основном потоке для выполнения некоторой работы;false, если работа не ожидается, и поэтому ORB не нуждается в основном потоке
perform_work
public void perform_work()
Выполняет зависящую от реализации единицу работы, если она вызывается основным потоком. В противном случае ничего не делает. Методы work_pending и perform_work могут использоваться совместно для реализации простого цикла опроса, который мультиплексирует основной поток между ORB и другими задачами.
get_service_information
public boolean get_service_information(short service_type,
ServiceInformationHolder service_info) Используется для получения информации о CORBA-объектах и услугах, поддерживаемых данным ORB. Тип службы, информация о которой запрашивается, передается в качестве входного параметра service_type, определённых константами в модуле CORBA. Если информация о службе доступна для данного типа, она возвращается в выходном параметре service_info, и операция возвращает значение true . Если информация о запрошенном типе службы недоступна, операция возвращает false (т.е. служба не поддерживается данным ORB).
- Параметры:
-
service_type- значениеshort, указывающее тип службы, информация о которой запрашивается -
service_info- объектServiceInformationHolder, который будет содержать объектServiceInformation, созданный данным методом - Возвращает:
-
true, если информация о службе доступна дляservice_type;false, если информация о запрошенном типе службы недоступна - См. также:
CORBAкомментарии к пакету для нереализованных функций
create_dyn_any
@Deprecated public DynAny create_dyn_any(Any value)
Устарело. Используйте новый API DynAnyFactory вместо этого
Создает новый объект DynAny из заданного объекта Any.
- Параметры:
-
value- объектAny, из которого создать новый объектDynAny - Возвращает:
- новый объект
DynAny, созданный из заданного объектаAny - См. также:
CORBAкомментарии к пакету для нереализованных функций
create_basic_dyn_any
@Deprecated
public DynAny create_basic_dyn_any(TypeCode type)
throws InconsistentTypeCode Устарело. Используйте новый API DynAnyFactory вместо этого
Создает базовый объект DynAny из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого создать новый объектDynAny - Возвращает:
- новый объект
DynAny, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для нереализованных функций
create_dyn_struct
@Deprecated
public DynStruct create_dyn_struct(TypeCode type)
throws InconsistentTypeCode Устарело. Используйте новый API DynAnyFactory вместо этого
Создает новый объект DynStruct из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого создать новый объектDynStruct - Возвращает:
- новый объект
DynStruct, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для нереализованных функций
create_dyn_sequence
@Deprecated
public DynSequence create_dyn_sequence(TypeCode type)
throws InconsistentTypeCode Устаревшее. Используйте новый API DynAnyFactory вместо этого
Создаёт новый объект DynSequence из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого необходимо создать новый объектDynSequence - Возвращает:
- новый объект
DynSequence, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для функций, которые не реализованы
create_dyn_array
@Deprecated
public DynArray create_dyn_array(TypeCode type)
throws InconsistentTypeCode Устаревшее. Используйте новый API DynAnyFactory вместо этого
Создаёт новый объект DynArray из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого необходимо создать новый объектDynArray - Возвращает:
- новый объект
DynArray, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для функций, которые не реализованы
create_dyn_union
@Deprecated
public DynUnion create_dyn_union(TypeCode type)
throws InconsistentTypeCode Устаревшее. Используйте новый API DynAnyFactory вместо этого
Создаёт новый объект DynUnion из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого необходимо создать новый объектDynUnion - Возвращает:
- новый объект
DynUnion, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для функций, которые не реализованы
create_dyn_enum
@Deprecated
public DynEnum create_dyn_enum(TypeCode type)
throws InconsistentTypeCode Устаревшее. Используйте новый API DynAnyFactory вместо этого
Создаёт новый объект DynEnum из заданного объекта TypeCode.
- Параметры:
-
type- объектTypeCode, из которого необходимо создать новый объектDynEnum - Возвращает:
- новый объект
DynEnum, созданный из заданного объектаTypeCode - Исключения:
-
InconsistentTypeCode- если заданный объектTypeCodeне соответствует операции. - См. также:
CORBAкомментарии к пакету для функций, которые не реализованы
create_policy
public Policy create_policy(int type,
Any val)
throws PolicyError Может быть вызван для создания новых экземпляров объектов политики определённого типа с указанным начальным состоянием. Если create_policy не удаётся создать новый объект Policy из-за неспособности интерпретировать запрашиваемый тип и содержимое политики, он поднимает исключение PolicyError с соответствующим объяснением.
- Параметры:
-
type- тип объекта политики, который должен быть создан -
val- значение, которое будет использоваться для установки начального состояния объектаPolicy, который создаётся - Возвращает:
- Ссылка на новый созданный объект
Policyтипа, указанного параметромtype, и инициализированный состоянием, указанным параметромval - Исключения:
-
- когда запрашиваемая политика не поддерживается или запрашиваемое начальное состояние для политики не поддерживается.org.omg.CORBA.PolicyError PolicyError
© 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.