JavaTM 2 Platform
Standard Ed. 6

org.omg.PortableServer
介面 POAOperations

所有已知子介面:
POA

public interface POAOperations

POA 物件管理物件集合的實作。POA 支持由 Object Id 標識的物件的名稱空間。POA 也支持 POA 的名稱空間。POA 都是作為現有 POA 的子 POA 創建的,這形成了始於根 POA 的分層結構。POA 物件不得輸出到其他進程,也不得使用 ORB::object_to_string 具體化。


方法摘要
 void activate_object_with_id(byte[] id, Servant p_servant)
          此操作將指定 Object Id 與指定 servant 之間的關聯輸入 Active Object Map。
 byte[] activate_object(Servant p_servant)
          此操作產生一個 Object Id,並將該 Object Id 和指定的 servant 輸入 Active Object Map。
 IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 POA create_POA(String adapter_name, POAManager a_POAManager, Policy[] policies)
          此操作創建一個新的 POA 作為目標 POA 的子 POA。
 Object create_reference_with_id(byte[] oid, String intf)
          此操作創建一個物件參考,該參考封裝指定的 Object Id 和介面存儲資源庫 Id 值。
 Object create_reference(String intf)
          此操作創建一個物件參考,該參考封裝 POA 產生的 Object Id 值和指定的介面存儲資源庫 id。
 RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
          每個這類別操作都返回一個對具有指定值的策略物件的參考。
 ThreadPolicy create_thread_policy(ThreadPolicyValue value)
          每個這種操作都返回一個對具有指定值的策略物件的參考。
 void deactivate_object(byte[] oid)
          此操作促使在 oid 參數中指定的 ObjectId 被取消啟動。
 void destroy(boolean etherealize_objects, boolean wait_for_completion)
          此操作銷毀 POA 及所有子代 POA。
 POA find_POA(String adapter_name, boolean activate_it)
          如果目標 POA 是具有指定名稱的子 POA(相對於目標 POA)的父 POA,則返回該子 POA。
 ServantManager get_servant_manager()
          如果 POA 的 ServantRetentionPolicy 為 RETAIN,則 ServantManager 參數 (imgr) 應該支持 ServantActivator 介面。
 Servant get_servant()
          此操作返回與 POA 關聯的預設 servant。
 Object id_to_reference(byte[] oid)
          如果具有指定 Object Id 值的物件當前不是啟動狀態,則返回一個封裝啟動該物件時所用資訊的參考。
 Servant id_to_servant(byte[] oid)
          如果 POA 具有 RETAIN 策略並且指定的 ObjectId 存在於 Active Object Map 中,則此操作返回與 Active Object Map 中該物件關聯的 servant。
 byte[] id()
          此操作在 POA 的創建過程中返回該 POA 的唯一 id。
 byte[] reference_to_id(Object reference)
          此操作返回指定參考封裝的 Object Id 值。
 Servant reference_to_servant(Object reference)
          如果 POA 具有 RETAIN 策略並且指定的物件存在於 Active Object Map 中,則此操作返回與 Active Object Map 中該物件關聯的 servant。
 byte[] servant_to_id(Servant p_servant)
          此操作有四種可能的行為。
 Object servant_to_reference(Servant p_servant)
          如果在此 POA 指派的操作的上下文外調用此操作,則需要 RETAIN 策略以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略之一。
 void set_servant_manager(ServantManager imgr)
          此操作設置與 POA 關聯的預設 servant 管理器。
 void set_servant(Servant p_servant)
          此操作在 POA 中將指定的 servant 註冊為預設 servant。
 AdapterActivator the_activator()
          此屬性標識與 POA 關聯的適配器啟動器。
 void the_activator(AdapterActivator newThe_activator)
          此屬性標識與 POA 關聯的適配器啟動器。
 POA[] the_children()
          此屬性標識 POA 的所有子 POA 的當前設置。
 String the_name()
          此屬性標識相對於其父 POA 的 POA。
 POA the_parent()
          此屬性標識 POA 的父 POA。
 POAManager the_POAManager()
          此屬性標識與 POA 關聯的 POA 管理器。
 

方法詳細資訊

create_POA

POA create_POA(String adapter_name,
               POAManager a_POAManager,
               Policy[] policies)
               throws AdapterAlreadyExists,
                      InvalidPolicy
此操作創建一個新的 POA 作為目標 POA 的子 POA。

參數:
adapter_name - 標識新的 POA(就其他具有相同父 POA 的 POA 而言)。
a_POAManager - 指示與新 POA 關聯的 POA 管理器。
policies - 指示與將與 POA 關聯以控制其行為的策略物件。
拋出:
AdapterAlreadyExists - 指示目標 POA 已經有一個具有指定名稱的子 POA。
InvalidPolicy - 策略物件中存在對 ORB 無效的策略、存在衝突,或要求未執行的管理動作時引發。

find_POA

POA find_POA(String adapter_name,
             boolean activate_it)
             throws AdapterNonExistent
如果目標 POA 是具有指定名稱的子 POA(相對於目標 POA)的父 POA,則返回該子 POA。

參數:
adapter_name - 要尋找的 POA 名稱。
activate_it - 如果不存在具有指定名稱的 POA,且 activate_it 參數的值為 TRUE,則將調用目標 POA 的 AdapterActivator(如果有)。
返回:
POA,如果有或由 AdapterActivator 啟動。
拋出:
AdapterNonExistent

destroy

void destroy(boolean etherealize_objects,
             boolean wait_for_completion)
此操作銷毀 POA 及所有子代 POA。在銷毀包含子代的 POA 前銷毀(以遞歸形式)所有子代 POA。以此方式銷毀的 POA(即具有其名稱的 POA)以後可通過相同的過程重新創建。

參數:
etherealize_objects - 指示是否需要對 servant 管理器調用 etherealize 操作的標記。
wait_for_completion - 一個標記,指示 POA 及其子 POA 是否需要等待啟動的請求和 etherealization 操作完成。

create_thread_policy

ThreadPolicy create_thread_policy(ThreadPolicyValue value)
每個這種操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
ThreadPolcy 物件

create_lifespan_policy

LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
LifespanPolicy 物件

create_id_uniqueness_policy

IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
IdUniquenessPolicy 物件

create_id_assignment_policy

IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
IdAssignmentPolicy 物件

create_implicit_activation_policy

ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
ImplicitActivationPolicy 物件

create_servant_retention_policy

ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
ServantRetentionPolicy 物件

create_request_processing_policy

RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
每個這類別操作都返回一個對具有指定值的策略物件的參考。

參數:
value - 策略型別
返回:
RequestProcessingPolicy 物件

the_name

String the_name()
此屬性標識相對於其父 POA 的 POA。此名稱在創建 POA 時分派。


the_parent

POA the_parent()
此屬性標識 POA 的父 POA。根 POA 的父 POA 為 null。


the_children

POA[] the_children()
此屬性標識 POA 的所有子 POA 的當前設置。子 POA 的設置只包括 POA 的直接子 POA,不包括其直接子 POA 的子代。


the_POAManager

POAManager the_POAManager()
此屬性標識與 POA 關聯的 POA 管理器。


the_activator

AdapterActivator the_activator()
此屬性標識與 POA 關聯的適配器啟動器。


the_activator

void the_activator(AdapterActivator newThe_activator)
此屬性標識與 POA 關聯的適配器啟動器。


get_servant_manager

ServantManager get_servant_manager()
                                   throws WrongPolicy
如果 POA 的 ServantRetentionPolicy 為 RETAIN,則 ServantManager 參數 (imgr) 應該支持 ServantActivator 介面。對於 NON_RETAIN 策略,ServantManager 應該支持 ServantLocator 介面。如果參數為 nil 或不支持所需介面,則引發 OBJ_ADAPTER 異常。

返回:
與 POA 關聯的 ServantManager;如果不存在,則返回 null。
拋出:
WrongPolicy - 未指定 USE_SERVANT_MANAGER 策略時引發。

set_servant_manager

void set_servant_manager(ServantManager imgr)
                         throws WrongPolicy
此操作設置與 POA 關聯的預設 servant 管理器。此操作只能在創建了 POA 後調用一次。試圖在已經設置了 servant 管理器後再次設置將導致引發 BAD_INV_ORDER 異常。

參數:
imgr - 預設情況下使用的 servant 管理器。
拋出:
WrongPolicy - 未指定 USE_SERVANT_MANAGER 策略時引發。

get_servant

Servant get_servant()
                    throws NoServant,
                           WrongPolicy
此操作返回與 POA 關聯的預設 servant。

返回:
p_servant 與 POA 關聯的預設 servant。
拋出:
NoServant - 沒有與 POA 關聯的預設 servant 時引發。
WrongPolicy - 未指定 USE_DEFAULT_SERVANT 策略時引發。

set_servant

void set_servant(Servant p_servant)
                 throws WrongPolicy
此操作在 POA 中將指定的 servant 註冊為預設 servant。此 servant 將用於所有在 Active Object Map 中沒有對應 servant 的請求。

參數:
p_servant - 預設情況下使用的 servant。
拋出:
WrongPolicy - 未指定 USE_DEFAULT_SERVANT 策略時引發。

activate_object

byte[] activate_object(Servant p_servant)
                       throws ServantAlreadyActive,
                              WrongPolicy
此操作產生一個 Object Id,並將該 Object Id 和指定的 servant 輸入 Active Object Map。

參數:
p_servant - 要與將被啟動的物件關聯的 servant。
返回:
產生物件 id 的 POA。
拋出:
ServantAlreadyActive - 在 POA 具有 UNIQUE_ID 策略且 servant 已經存在於 Active Object Map 時引發。
WrongPolicy - 未指定 SYSTEM_ID 和 RETAIN 策略時引發。

activate_object_with_id

void activate_object_with_id(byte[] id,
                             Servant p_servant)
                             throws ServantAlreadyActive,
                                    ObjectAlreadyActive,
                                    WrongPolicy
此操作將指定 Object Id 與指定 servant 之間的關聯輸入 Active Object Map。

參數:
id - 將被啟動的物件的物件 id。
p_servant - 將關聯物件的 servant。
拋出:
ServantAlreadyActive - 在 POA 具有 UNIQUE_ID 策略且 servant 已經存在於 Active Object Map 時引發。
ObjectAlreadyActive - 物件已經在 POA 中啟動時引發。
WrongPolicy - 未指定 RETAIN 策略時引發。

deactivate_object

void deactivate_object(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
此操作促使在 oid 參數中指定的 ObjectId 被取消啟動。只要已取消啟動的 ObjectId 中還存在啟動的請求,該 ObjectId 將繼續處理請求。當為停用的 ObjectId 執行的所有請求全部完成後,將從 Active Object Map 中移除該 ObjectId。

參數:
oid - 將被停用的物件的 Object Id。
拋出:
ObjectNotActive - 如果具有指定 oid 的物件不在 Active Object Map 中。
WrongPolicy - 未指定 RETAIN 策略時引發。

create_reference

Object create_reference(String intf)
                        throws WrongPolicy
此操作創建一個物件參考,該參考封裝 POA 產生的 Object Id 值和指定的介面存儲資源庫 id。

參數:
intf - 用來創建物件參考的 rep id。
返回:
使用 intf 創建的物件參考。
拋出:
WrongPolicy - 如果未指定 SYSTEM_ID 策略。

create_reference_with_id

Object create_reference_with_id(byte[] oid,
                                String intf)
此操作創建一個物件參考,該參考封裝指定的 Object Id 和介面存儲資源庫 Id 值。該操作不會導致發生啟動。所得參考可以傳遞給客戶端,從而後續對這些參考的請求將導致在必要時可啟動物件,或者使用預設的 servant,具體取決於適用的策略。

參數:
oid - 用來創建 objref 的物件 id
intf - 用來創建 objref 的 rep id
返回:
使用 oid 和 intf 創建的物件參考
拋出:
BAD_PARAM - 如果 POA 具有 SYSTEM_ID 策略且它檢測到系統或 POA 沒有產生 Object Id 值。

servant_to_id

byte[] servant_to_id(Servant p_servant)
                     throws ServantNotActive,
                            WrongPolicy
此操作有四種可能的行為。1. 如果 POA 具有 UNIQUE_ID 策略且指定的 servant 已啟動,則返回與該 servant 關聯的 Object Id。2. 如果 POA 具有 IMPLICIT_ACTIVATION 策略,並且 POA 具有 MULTIPLE_ID 策略或者指定的 servant 未啟動,則使用 POA 產生的 Object Id 和與該 servant 關聯的 Interface Id 啟動 servant,並返回該 Object Id。3. 如果 POA 具有 USE_DEFAULT_SERVANT 策略,指定的 servant 為預設 servant,並將在執行請求的上下文中對預設 servant 調用該操作,則將返回關聯當前調用的 ObjectId。4. 其他情況下引發 ServantNotActive 異常。

參數:
p_servant - 為其返回物件 disi 的 servant。
返回:
與 servant 關聯的物件 id。
拋出:
ServantNotActive - 如果不滿足上述規則和策略組合。
WrongPolicy - 如果 USE_DEFAULT_SERVANT 策略或 RETAIN 策略的組合以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略不存在。

servant_to_reference

Object servant_to_reference(Servant p_servant)
                            throws ServantNotActive,
                                   WrongPolicy
如果在此 POA 指派的操作的上下文外調用此操作,則需要 RETAIN 策略以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略之一。它具有四種可能的行為。1. 如果 POA 同時具有 RETAIN 和 UNIQUE_ID 策略,且指定的 servant 是啟動的,則返回一個封裝啟動 servant 時所用資訊的物件參考。2. 如果 POA 同時具有 RETAIN 和 IMPLICIT_ACTIVATION 策略,並且 POA 具有 MULTIPLE_ID 策略或者指定的 servant 未啟動,則使用 POA 產生的 Object Id 和與該 servant 關聯的 Interface Id 啟動 servant,並返迴響應的物件參考。3. 如果該操作在執行請求的上下文中對指定的 servant 調用,則返回關聯當前調用的參考。4. 其他情況下引發 ServantNotActive 異常。

參數:
p_servant - 需要為其獲取物件參考的 servant。
返回:
與 servant 關聯的物件參考。
拋出:
WrongPolicy - 如果操作不是在對指定 servant 執行請求的上下文中調用的,且所需的策略不存在。
ServantNotActive - 如果不滿足上述指定策略和規則。

reference_to_servant

Servant reference_to_servant(Object reference)
                             throws ObjectNotActive,
                                    WrongPolicy,
                                    WrongAdapter
如果 POA 具有 RETAIN 策略並且指定的物件存在於 Active Object Map 中,則此操作返回與 Active Object Map 中該物件關聯的 servant。如果 POA 具有 USE_DEFAULT_SERVANT 策略並且已經向 POA 註冊了預設 servant,則此操作返回該預設 servant。如果此 POA 沒有創建物件參考,則引發 WrongAdapter 異常。(與 POA.IDL 不一致的 OMG 問題。)

參數:
reference - 為其返回 servant 的物件參考。
返回:
與參考關聯的 servant。
拋出:
WrongPolicy - 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略都不存在。
ObjectNotActive - 如果 servant 不存在於 Active Object Map 中(對於 RETAIN)或者沒有註冊預設 servant(對於 USE_DEFAULT_POLICY)。
WrongAdapter - 如果此 POA 實例沒有創建參考。

reference_to_id

byte[] reference_to_id(Object reference)
                       throws WrongAdapter,
                              WrongPolicy
此操作返回指定參考封裝的 Object Id 值。僅在參考是由將執行此操作的 POA 所創建的情況下,此操作才有效。參考表示的物件不是啟動狀態時此操作也能成功。

參數:
reference - 物件參考,需要根據該參考返回物件 id。
返回:
參考中封裝的物件 id。
拋出:
WrongAdapter - 如果參考不是由參考中指定的 POA 創建的。
WrongPolicy - 先宣告,以用於以後擴展。

id_to_servant

Servant id_to_servant(byte[] oid)
                      throws ObjectNotActive,
                             WrongPolicy
如果 POA 具有 RETAIN 策略並且指定的 ObjectId 存在於 Active Object Map 中,則此操作返回與 Active Object Map 中該物件關聯的 servant。如果 POA 具有 USE_DEFAULT_SERVANT 策略並且已經向 POA 註冊了預設 servant,則此操作返回該預設 servant。

參數:
oid - 為其返回 servant 的物件 id。
返回:
與 oid 關聯的 servant。
拋出:
ObjectNotActive - 如果 ObjectId 不存在於 Active Object Map 中(對於 RETAIN 策略),或者沒有註冊預設 servant(對於 USE_DEFAULT_SERVANT 策略)。
WrongPolicy - 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略不存在,則引發該異常。

id_to_reference

Object id_to_reference(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
如果具有指定 Object Id 值的物件當前不是啟動狀態,則返回一個封裝啟動該物件時所用資訊的參考。

參數:
oid - 為其返回參考的物件 id。
返回:
物件參考。
拋出:
ObjectNotActive - 如果 POA 中的 Object Id 值未啟動。
WrongPolicy - 如果不存在 RETAIN 策略。

id

byte[] id()
此操作在 POA 的創建過程中返回該 POA 的唯一 id。該值由可移植的 interceptor 使用。

此 id 在 POA 處理過程中的生命週期內保證是唯一的。對於持久 POA,這意味著如果在同一路徑使用與另一個 POA 相同的名稱創建一個 POA,則這兩個 POA 是等同的,也因此具有相同的 id。對於瞬態 POA,每個 POA 均唯一。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only