若要容許使用多個位址空間特性,則需要不同的產生程式碼設定。
這些設定由下列內容所控制:
- C_CG::Configuration::MultipleAddressSpaces
當此布林內容設為 Checked 時,IBM® Rational® Rhapsody® 會使用要使用多個位址空間特性所需的程式碼產生設定。此內容的預設值是 Cleared,因此您必須變更值才能啟動此特性。
為了能夠接收來自其他位址空間的事件,回應物件必須發佈將透過其進行識別的名稱。在類別層次設定的下列兩個內容可用於此用途:
- C_CG::Class::PublishedName 這是用來識別回應物件的名稱,以傳送分散式事件至該物件。
如果類別只有一個回應實例,則此內容的值會用來識別物件。
如果類別有多個回應實例,且每一個實例皆有明確命名,則用來識別回應物件的名稱將與您已提供給物件的名稱(而非內容值)相同。
在對應關係的情況下,若有物件未明確命名,則用來識別回應物件的名稱將是已發佈名稱 + 物件的索引,例如,如果 PublishedName 內容的值是 truck,則會依 truck[0], truck[1] 識別物件。
- C_CG::Class::PublishInstance
此布林內容會指出是否要將物件發佈為回應實例,以能夠接收分散式事件。
此外,您可以使用在配置層次設定的下列內容,以在傳送事件時指定特定的目標位址空間(如用於跨位址空間傳送事件的 API中所說明):
- C_CG::Configuration::AddressSpaceName
當您想要將事件傳送至特定位址空間中的回應物件時,可以透過將此內容的值用作字首(使用格式 addressSpaceName::publishedNameOfReactiveObject)來指定位址空間。此內容的預設值是相關元件的名稱。
如果要跨位址空間傳送的事件沒有引數或只將初始類型作為引數(如整數或字元),則足以能夠設定之前提到的內容。但是,如果要傳送的事件包括作為引數的物件,您必須還要在事件層次設定下列內容:
- C_CG::Event::SerializationFunction 要使用之使用者提供的序列化函數名稱
- C_CG::Event::UnserializationFunction 要使用之使用者提供的取消序列化函數名稱
如需這兩個使用者提供之函數的必要結構的相關詳細資料,請參閱用於序列化及取消序列化的函數。