|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object org.omg.CORBA.ORB
public abstract class ORB
為 CORBA 物件請求代理 (Object Request Broker) 特性提供 API 的類別。ORB
類別還提供“可插入 ORB 實作”API,該 API 允許使用另一個供應商的 ORB 實作。
通過連接發送請求的物件(客戶端)與回應請求的物件(伺服器),ORB 使 CORBA 物件彼此之間能夠進行通訊。
ORB
類別封裝了一些一般的 CORBA 功能,它可執行以下操作:(注意第 5 項和第 6 項,它們包含 ORB
類別中的大多數方法,通常與動態調用介面(Dynamic Invocation Interface
,DII)和動態框架介面(Dynamic Skeleton Interface
,DSI)一起使用。開發人員可以直接使用這些介面,但大多數情況下,這些介面常常由 ORB 內部使用,這對於普通開發人員是不可見的。)
resolve_initial_references
獲取對某些服務的初始物件參考(如 NameService)
TypeCode
Any
NamedValue
Context
Environment
NVList
)
可以使用 ORB
類別獲取對網路上任意位置實作的物件的參考。
應用程序或 applet 通過使用三個 init
方法之一將其自身初始化為 ORB
,來存取 CORBA 環境。這三個方法中有兩個使用下表中所示的屬性(名稱與值的關聯)。
屬性名 | 屬性值 |
---|---|
org.omg.CORBA.ORBClass | ORB 實作的類別名稱 |
org.omg.CORBA.ORBSingletonClass | 由 init() 返回的 ORB 的類別名稱 |
這些屬性允許“插入”不同供應商的 ORB
實作。
在創建 ORB 實例時,使用以下標準搜尋順序來定位 ORB 實作的類別名稱:
注意,Java IDL 提供全功能 ORB 和單件 (Singleton) ORB 的預設實作。當沒有為 init
方法提供任何參數時,返回預設單件 ORB。當為 init
方法提供了參數但沒有指定 ORB 類別時,返回 Java IDL ORB 實作。
以下程式碼段創建了一個使用預設 ORB 單件初始化的 ORB
物件。此 ORB 有一個受限制的實作,以防止惡意 applet 執行任何創建 typecode 以外的操作。稱它為單件 ORB 是因為整個虛擬機器中只有一個實例。
ORB orb = ORB.init();
以下程式碼片段創建用於某個應用程序的 ORB
物件。參數 args
表示提供給應用程序的 main
方法的參數。因為該屬性指定了 ORB 類別為 "SomeORBImplementation",所以將使用該 ORB 實作初始化新的 ORB。如果 p 為 null,並且參數沒有指定 ORB 類別,則使用預設 Java IDL 實作初始化新的 ORB。
Properties p = new Properties(); p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation"); ORB orb = ORB.init(args, p);
以下程式碼片段為作為第一個參數提供的 applet 創建 ORB
物件。如果給定 applet 沒有指定 ORB 類別,則將使用預設 Java IDL 實作初始化新的 ORB。
ORB orb = ORB.init(myApplet, null);
可以在一個或多個 ORB 中初始化應用程序或 applet。ORB 初始化是進入 CORBA 環境的引導調用。
建構子摘要 | |
---|---|
ORB()
|
方法摘要 | |
---|---|
void |
connect(Object obj)
將給定 servant 物件(作為伺服器實作類別的實例的 Java 物件)連接到 ORB。 |
TypeCode |
create_abstract_interface_tc(String id,
String name)
為 IDL 抽象介面創建一個 TypeCode 物件。 |
abstract TypeCode |
create_alias_tc(String id,
String name,
TypeCode original_type)
創建一個表示 IDL alias 的 TypeCode 物件 (typedef )。 |
abstract Any |
create_any()
創建一個 IDL Any 物件,初始化後該物件包含一個 kind 欄位被設置為 TCKind.tc_null 的 Typecode 物件。 |
abstract TypeCode |
create_array_tc(int length,
TypeCode element_type)
創建一個表示 IDL array 的 TypeCode 物件。 |
DynAny |
create_basic_dyn_any(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
abstract ContextList |
create_context_list()
創建一個空的 ContextList 物件。 |
DynAny |
create_dyn_any(Any value)
已過時。 使用新的 DynAnyFactory API 代替 |
DynArray |
create_dyn_array(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
DynEnum |
create_dyn_enum(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
DynSequence |
create_dyn_sequence(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
DynStruct |
create_dyn_struct(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
DynUnion |
create_dyn_union(TypeCode type)
已過時。 使用新的 DynAnyFactory API 代替 |
abstract TypeCode |
create_enum_tc(String id,
String name,
String[] members)
創建一個表示 IDL enum 的 TypeCode 物件。 |
abstract Environment |
create_environment()
創建一個 Environment 物件。 |
abstract ExceptionList |
create_exception_list()
創建一個空的 ExceptionList 物件。 |
abstract TypeCode |
create_exception_tc(String id,
String name,
StructMember[] members)
創建一個表示 IDL exception 的 TypeCode 物件。 |
TypeCode |
create_fixed_tc(short digits,
short scale)
為 IDL fixed 型別創建一個 TypeCode 物件。 |
abstract TypeCode |
create_interface_tc(String id,
String name)
創建一個表示 IDL interface 的 TypeCode 物件。 |
abstract NVList |
create_list(int count)
為指定數量的 NamedValue 物件分派具有(可能)足夠空間的 NVList 。 |
abstract NamedValue |
create_named_value(String s,
Any any,
int flags)
使用給定名稱、值和參數網要標誌創建一個 NamedValue 物件。 |
TypeCode |
create_native_tc(String id,
String name)
為 IDL native 型別創建一個 TypeCode 物件。 |
NVList |
create_operation_list(Object oper)
創建一個 NVList ,並使用給定 OperationDef 物件中所述操作的參數描述進行初始化。 |
abstract OutputStream |
create_output_stream()
創建一個新的 org.omg.CORBA.portable.OutputStream ,在執行方法調用期間,可在該輸出串流中對 IDL 方法參數進行編組。 |
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)
創建一個遞歸 TypeCode 物件,在創建包含遞歸的 TypeCodes 期間,該物件充當具體 TypeCode 的佔位符。 |
abstract TypeCode |
create_sequence_tc(int bound,
TypeCode element_type)
創建一個表示 IDL sequence 的 TypeCode 物件。 |
abstract TypeCode |
create_string_tc(int bound)
創建一個表示有界 IDL string 的 TypeCode 物件。 |
abstract TypeCode |
create_struct_tc(String id,
String name,
StructMember[] members)
創建一個表示 IDL struct 的 TypeCode 物件。 |
abstract TypeCode |
create_union_tc(String id,
String name,
TypeCode discriminator_type,
UnionMember[] members)
創建一個表示 IDL union 的 TypeCode 物件。 |
TypeCode |
create_value_box_tc(String id,
String name,
TypeCode boxed_type)
為 IDL value box 型別創建一個 TypeCode 物件。 |
TypeCode |
create_value_tc(String id,
String name,
short type_modifier,
TypeCode concrete_base,
ValueMember[] members)
為 IDL value 型別創建一個 TypeCode 物件。 |
abstract TypeCode |
create_wstring_tc(int bound)
創建一個表示有界 IDL wstring (wide string) 的 TypeCode 物件。 |
void |
destroy()
銷毀 ORB,以便可以回收其資源。 |
void |
disconnect(Object obj)
斷開給定 servant 物件與 ORB 的連接。 |
Current |
get_current()
已過時。 使用 resolve_initial_references 。 |
abstract Context |
get_default_context()
獲取預設 Context 物件。 |
abstract Request |
get_next_response()
獲取已接收到回應的下一個 Request 實例。 |
abstract TypeCode |
get_primitive_tc(TCKind tcKind)
檢索表示給定基本 IDL 型別的 TypeCode 物件。 |
boolean |
get_service_information(short service_type,
ServiceInformationHolder service_info)
用來獲取有關受此 ORB 支持的 CORBA 資源和服務的資訊。 |
static ORB |
init()
返回物件 ORB 單件。 |
static ORB |
init(Applet app,
Properties props)
為 applet 創建一個新的 ORB 實例。 |
static ORB |
init(String[] args,
Properties props)
為獨立的應用程序創建一個新的 ORB 實例。 |
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 已完成關閉過程前(該過程始於某些執行緒調用 shutdown 時),此操作將一直阻塞當前執行緒。 |
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)
允許使用給定 applet 和參數初始化 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)
將方法 object_to_string 產生的字元串轉換回 CORBA 物件參考。 |
boolean |
work_pending()
如果 ORB 需要主執行緒來執行某些操作,則返回 true ;如果 ORB 不需要主執行緒,則返回 false 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public ORB()
方法詳細資訊 |
---|
public static ORB init()
ORB
單件。此方法總是返回相同的 ORB 實例,該實例是由 org.omg.CORBA.ORBSingletonClass
系統屬性所描述的類別的實例。
無參數的 init
方法主要用作 TypeCode
物件的處理器,Helper
類別使用該物件來實作 type
方法。還可以使用該方法來創建用於描述 union
標籤的 Any
物件(作為創建用於 union
的 TypeCode
物件的一部分)。
此方法並不適合由 applet 使用,如果在 applet 環境中調用此方法,則該方法返回的 ORB 是受限制的,即它只能用作 TypeCode
物件的處理器。該方法產生的任何 TypeCode
物件都可以在不受信任的 applet 之間安全地共享。
如果某一 ORB 是使用此方法從 applet 創建的,則將拋出系統異常(如果調用的是用來創建 TypeCode
物件的那些方法以外的方法)。
public static ORB init(String[] args, Properties props)
ORB
實例。此方法只能從應用程序調用,每次調用該方法都會返回一個新的全功能 ORB
物件。
args
- 應用程序的 main
方法的命令行參數,可以為 null
props
- 特定於應用程序的屬性,可以為 null
public static ORB init(Applet app, Properties props)
ORB
實例。此方法只能從 applet 調用,每次調用該方法都會返回一個新的全功能 ORB
物件。
app
- applet,可以為 null
props
- 特定於 applet 的屬性,可以為 null
protected abstract void set_parameters(String[] args, Properties props)
init
方法調用,以傳入其參數。
args
- 應用程序的 main
方法的命令行參數,可以為 null
props
- 特定於應用程序的屬性,可以為 null
protected abstract void set_parameters(Applet app, Properties props)
init
方法調用,以傳入其參數。
app
- applet,可以為 null
props
- 特定於 applet 的屬性,可以為 null
public void connect(Object obj)
ImplBase
類別。因此 servant 必須是一個 CORBA 物件參考,並且必須繼承自 org.omg.CORBA.Object
。由使用者創建的 servant 可在調用 connect
方法之後開始接收遠端調用。如果將 servant 作為非本地物件上的 IDL 方法調用中的 IDL 參數傳遞,也就是說,如果對 servant 物件進行編組並將它發送到進程位址空間以外,則 servant 也可以自動隱式地連接到 ORB。
當 servant 物件已經連接到 ORB 時,調用 connect
方法沒有任何效果。
OMG 推薦使用可移植物件適配器 API 取代此方法。
obj
- servant 物件參考public void destroy()
OBJECT_NOT_EXIST
異常。一旦已銷毀 ORB,使用相同的 ORBid 再次調用 init
將返回對新建 ORB 的參考。
如果對尚未關閉的 ORB 調用 destroy
,則在銷毀該 ORB 之前將啟動關閉進程,並且該方法將一直阻塞到關閉 ORB 為止。
如果應用程序在當前正服務於某個調用的執行緒中調用 destroy
,則將拋出 BAD_INV_ORDER
系統異常,並帶有 OMG 次要程式碼 (minor code) 3,因為阻塞將導致死鎖。
為獲取最大的可移植性並避免資源洩漏,應用程序應該總是在退出前對所有 ORB 實例調用 shutdown
和 destroy
。
BAD_INV_ORDER
- 如果當前執行緒正服務於某一調用public void disconnect(Object obj)
org.omg.CORBA.OBJECT_NOT_EXIST
發送回遠端客戶端。因此,從遠端客戶端看來,該物件似乎已被銷毀。不過要注意的是,使用 servant 直接發佈的本地請求不通過 ORB,因此,這些請求將繼續由 servant 處理。
如果 servant 沒有連接到 ORB,則調用 disconnect
方法沒有任何效果。
OMG 推薦使用可移植物件適配器 API 取代此方法。
obj
- 將與 ORB 斷開連接的 servant 物件public abstract String[] list_initial_services()
String
物件陣列,這些物件表示此 ORB 中最初可用 CORBA 服務的物件參考public abstract Object resolve_initial_references(String object_name) throws InvalidName
object_name
- 字元串形式的初始服務名稱
InvalidName
- 如果給定名稱不與已知服務關聯public abstract String object_to_string(Object obj)
可以使用能夠操作 String
物件的任何方式存儲所得 String
物件或與它們進行通信。
obj
- 將字元串化的物件參考
public abstract Object string_to_object(String str)
object_to_string
產生的字元串轉換回 CORBA 物件參考。
str
- 將轉換回物件參考的字元串。它必須是使用 object_to_string
方法將物件參考轉換所得到的字元串。
public abstract NVList create_list(int count)
NamedValue
物件分派具有(可能)足夠空間的 NVList
。注意,指定的大小只是一個有助於存儲分派的提示,並不表示列表的最大大小。
count
- 要分派空間的 NamedValue
物件的建議數量
NVList
NVList
public NVList create_operation_list(Object oper)
NVList
,並使用給定 OperationDef
物件中所述操作的參數描述進行初始化。此 OperationDef
物件是從介面存儲資源庫 (Interface Repository) 中獲得的。所返回 NVList
物件中參數的順序與原始 IDL 操作定義中的順序相同,這使得能夠在動態調用請求中使用該列表。
oper
- 將用來創建列表的 OperationDef
物件
NVList
物件,它包含對給定 OperationDef
物件中所述方法的參數描述NVList
public abstract NamedValue create_named_value(String s, Any any, int flags)
NamedValue
物件。
NamedValue
物件可用作 (1) 參數或返回值,或者 (2) 上下文屬性。它可以單獨使用,也可以作為 NVList
物件中的一個元素使用。
s
- NamedValue
物件的名稱any
- 將插入 NamedValue
物件的 Any
值flags
- NamedValue
的參數網要標誌:ARG_IN.value
、ARG_OUT.value
或 ARG_INOUT.value
之一。
NamedValue
物件NamedValue
public abstract ExceptionList create_exception_list()
ExceptionList
物件。
ExceptionList
物件public abstract ContextList create_context_list()
ContextList
物件。
ContextList
物件ContextList
,
Context
public abstract Context get_default_context()
Context
物件。
Context
物件Context
public abstract Environment create_environment()
Environment
物件。
Environment
物件Environment
public abstract OutputStream create_output_stream()
org.omg.CORBA.portable.OutputStream
,在執行方法調用期間,可在該輸出串流中對 IDL 方法參數進行編組。
org.omg.CORBA.portable.OutputStream
物件public abstract void send_multiple_requests_oneway(Request[] req)
req
- 請求物件陣列public abstract void send_multiple_requests_deferred(Request[] req)
req
- Request
物件陣列public abstract boolean poll_next_response()
true
;否則返回 false
。public abstract Request get_next_response() throws WrongTransaction
Request
實例。
Request
物件
WrongTransaction
- 如果在不同於發送原始請求的事務處理域中調用 get_next_response
方法。有關詳細資訊,請參閱 OMG 事務服務 (Transaction Service) 規範。public abstract TypeCode get_primitive_tc(TCKind tcKind)
TypeCode
物件。
tcKind
- 對應於所需基本型別的 TCKind
實例
TypeCode
物件public abstract TypeCode create_struct_tc(String id, String name, StructMember[] members)
struct
的 TypeCode
物件。使用給定 id、名稱和成員初始化該 TypeCode
物件。
id
- struct
的存儲資源庫 idname
- struct
的名稱members
- 描述 struct
成員的陣列
struct
的新建 TypeCode
物件public abstract TypeCode create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
union
的 TypeCode
物件。使用給定 id、名稱、鑒別符型別和成員初始化該 TypeCode
物件。
id
- union
的存儲資源庫 idname
- union
的名稱discriminator_type
- union
鑒別符的型別members
- 描述 union
成員的陣列
union
的新建 TypeCode
物件public abstract TypeCode create_enum_tc(String id, String name, String[] members)
enum
的 TypeCode
物件。使用給定 id、名稱和成員初始化該 TypeCode
物件。
id
- enum
的存儲資源庫 idname
- enum
的名稱members
- 描述 enum
成員的陣列
enum
的新建 TypeCode
物件public abstract TypeCode create_alias_tc(String id, String name, TypeCode original_type)
alias
的 TypeCode
物件 (typedef
)。使用給定 id、名稱和原始型別初始化該 TypeCode
物件。
id
- 別名的存儲資源庫 idname
- 別名的名稱original_type
- 描述原始型別(該值是其別名)的 TypeCode
物件
alias
的新建 TypeCode
物件public abstract TypeCode create_exception_tc(String id, String name, StructMember[] members)
exception
的 TypeCode
物件。使用給定 id、名稱和成員初始化該 TypeCode
物件。
id
- exception
的存儲資源庫 idname
- exception
的名稱members
- 描述 exception
成員的陣列
exception
的新建 TypeCode
物件public abstract TypeCode create_interface_tc(String id, String name)
interface
的 TypeCode
物件。使用給定 id 和名稱初始化該 TypeCode
物件。
id
- 介面的存儲資源庫 idname
- 介面的名稱
interface
的新建 TypeCode
物件public abstract TypeCode create_string_tc(int bound)
string
的 TypeCode
物件。使用給定 bound 初始化該 TypeCode
物件,bound 表示字元串的最大長度。0 指示此型別程式碼描述的字元串是無界的。
bound
- string
的範圍,不能為負
string
的新建 TypeCode
物件
BAD_PARAM
- 如果 bound 為負值public abstract TypeCode create_wstring_tc(int bound)
wstring
(wide string) 的 TypeCode
物件。使用給定 bound 初始化該 TypeCode
物件,bound 表示寬字元串的最大長度。0 指示此型別程式碼描述的字元串是無界的。
bound
- wstring
的範圍,不能為負
wstring
的新建 TypeCode
物件
BAD_PARAM
- 如果 bound 為負值public abstract TypeCode create_sequence_tc(int bound, TypeCode element_type)
sequence
的 TypeCode
物件。使用給定 bound 和元素型別初始化該 TypeCode
物件。
bound
- sequence
的範圍,如果無界,則該值為 0element_type
- 描述 sequence
中所包含元素的 TypeCode
物件
sequence
的新建 TypeCode
物件@Deprecated public abstract TypeCode create_recursive_sequence_tc(int bound, int offset)
sequence
的 TypeCode
物件。
對於以下程式碼片段中的 IDL struct
Node,用來創建其序列的 offset 參數將是 1:
Struct Node { long value; Sequence <Node> subnodes; };
bound
- 序列範圍,如果無界,則該值為 0offset
- 描述此序列元素的封閉 TypeCode
物件的索引
TypeCode
物件create_recursive_tc
,
create_sequence_tc
public abstract TypeCode create_array_tc(int length, TypeCode element_type)
array
的 TypeCode
物件。使用給定長度和元素型別初始化該 TypeCode
物件。
length
- array
的長度element_type
- 描述 array
中所包含元素的型別的 TypeCode
物件
array
的新建 TypeCode
物件public TypeCode create_native_tc(String id, String name)
TypeCode
物件。
id
- native 型別的邏輯 id。name
- native 型別的名稱。
public TypeCode create_abstract_interface_tc(String id, String name)
TypeCode
物件。
id
- 抽象介面型別的邏輯 id。name
- 抽象介面型別的名稱。
public TypeCode create_fixed_tc(short digits, short scale)
TypeCode
物件。
digits
- 指定數字中總的小數位數,必須在從 1 到 31 的閉區間內。scale
- 指定小數點的位置。
public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
TypeCode
物件。concrete_base 參數是用於 valuetype(將為其創建 TypeCode)直接具體 valuetype 基的 TypeCode。如果 valuetype 沒有 concrete 基,則該值為 null。
id
- 值型別的邏輯 id。name
- 值型別的名稱。type_modifier
- 以下值型別修飾符常數之一:VM_NONE、VM_CUSTOM、VM_ABSTRACT 或 VM_TRUNCATABLEconcrete_base
- 描述具體 valuetype 基的 TypeCode
物件members
- 套件含 value 型別成員的陣列
public TypeCode create_recursive_tc(String id)
TypeCode
物件,在創建包含遞歸的 TypeCodes 期間,該物件充當具體 TypeCode 的佔位符。id 參數指定型別(遞歸 TypeCode 將充當該型別的佔位符)的存儲資源庫 id。一旦將遞歸 TypeCode 正確地嵌入到對應於指定存儲資源庫 id 的封閉 TypeCode,該 TypeCode 的作用將與普通 TypeCode 一樣。如果在將遞歸 TypeCode 嵌入封閉 TypeCode 之前對該 TypeCode 執行調用操作,則將導致 BAD_TYPECODE
異常。
例如,以下 IDL 型別宣告中包含遞歸:
Struct Node { Sequence<Node> subnodes; };
要為 struct Node 創建 TypeCode,應調用 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 陣列中傳輸 struct 資料時,可以通過這種方式避免編碼問題。
id
- 所參考型別的邏輯 id
public TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
TypeCode
物件。
id
- 值型別的邏輯 idname
- 值型別的名稱boxed_type
- 該型別的 TypeCode
public abstract Any create_any()
Any
物件,初始化後該物件包含一個 kind
欄位被設置為 TCKind.tc_null
的 Typecode
物件。
Any
物件@Deprecated public Current get_current()
resolve_initial_references
。
Current
物件。Current
介面用於管理由服務使用的特定於執行緒的資訊(比如事務處理和安全)。
Current
物件CORBA
套件中有關未實作特性的註釋public void run()
shutdown
時),此操作將一直阻塞當前執行緒。此方法可由關閉 ORB 時獲取全部通知的多個執行緒使用。
public void shutdown(boolean wait_for_completion)
wait_for_completion
參數為 true,則在所有 ORB 處理(包括當前執行請求、物件釋放和其他物件適配器操作的處理)已完成之前,此操作一直受阻塞。如果應用程序在當前正服務於某個調用的執行緒中執行該操作,則將拋出 BAD_INV_ORDER
系統異常,並帶有 OMG 次要程式碼 3,因為阻塞將導致死鎖。wait_for_completion
參數為 FALSE
,則可能在返回時還沒完成關閉。
當 ORB 處於關閉過程中時,ORB 操作照常,繼續為傳入和傳出的請求服務,直到所有請求完成為止。一旦 ORB 已關閉,則只能對該 ORB(或從中獲得的任何物件參考)調用物件參考管理操作。應用程序還可以對 ORB 本身調用 destroy
操作。調用任何其他操作將導致拋出 BAD_INV_ORDER
系統異常,並帶有 OMG 次要程式碼 4。
ORB.run
方法將在調用 shutdown
之後返回。
wait_for_completion
- 如果調用在完成關閉之前應一直受阻塞,則該參數為 true
;如果該調用應立即返回,則該參數為 false
BAD_INV_ORDER
- 如果當前執行緒正服務於某一調用。public boolean work_pending()
true
;如果 ORB 不需要主執行緒,則返回 false
。
true
,這意味著 ORB 需要主執行緒來執行某些操作;如果沒有操作處於掛起狀態,從而 ORB 不需要主執行緒,則返回 false
public void perform_work()
work_pending
和 perform_work
方法來實作簡單的輪詢循環,該循環在 ORB 和其他活動中多路傳輸主執行緒。
public boolean get_service_information(short service_type, ServiceInformationHolder service_info)
service_type
- 一個 short
值,指示將為其請求資訊的服務型別service_info
- 一個 ServiceInformationHolder
物件,該物件將保存此方法產生的 ServiceInformation
物件
true
;如果對於所請求的服務型別沒有可用資訊,則返回 falseCORBA
套件中有關未實作特性的註釋@Deprecated public DynAny create_dyn_any(Any value)
Any
物件創建一個新的 DynAny
物件。
value
- 據以創建新 DynAny
物件的 Any
物件
Any
物件創建的新 DynAny
物件CORBA
套件中有關未實作特性的註釋@Deprecated public DynAny create_basic_dyn_any(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建基本 DynAny
物件。
type
- 據以創建新 DynAny
物件的 TypeCode
物件
TypeCode
物件創建新的 DynAny
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋@Deprecated public DynStruct create_dyn_struct(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建新的 DynStruct
物件。
type
- 據以創建新的 DynStruct
物件的 TypeCode
物件
TypeCode
物件創建新的 DynStruct
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋@Deprecated public DynSequence create_dyn_sequence(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建新的 DynSequence
物件。
type
- 據以創建新 DynSequence
物件的 TypeCode
物件
TypeCode
物件創建新的 DynSequence
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋@Deprecated public DynArray create_dyn_array(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建新的 DynArray
物件。
type
- 據以創建新 DynArray
物件的 TypeCode
物件
TypeCode
物件創建新的 DynArray
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋@Deprecated public DynUnion create_dyn_union(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建新的 DynUnion
物件。
type
- 據以創建新 DynUnion
物件的 TypeCode
物件
TypeCode
物件創建新的 DynUnion
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋@Deprecated public DynEnum create_dyn_enum(TypeCode type) throws InconsistentTypeCode
TypeCode
物件創建新的 DynEnum
物件。
type
- 據以創建新 DynEnum
物件的 TypeCode
物件
TypeCode
物件創建新的 DynEnum
物件
InconsistentTypeCode
- 如果給定 TypeCode
物件與操作不一致。CORBA
套件中有關未實作特性的註釋public Policy create_policy(int type, Any val) throws PolicyError
type
- 要創建的策略物件的 PolicyTypeval
- 將用來設置被創建的 Policy 物件初始狀態的值
org.omg.CORBA.PolicyError
- 當所請求的策略不受支持,或所請求的策略初始狀態不受支持時。
PolicyError
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。