複数アドレス空間フィーチャーの使用を許可するには、コード生成の設定が必要になります。
この設定は、以下のプロパティーによって制御されます。
- C_CG::Configuration::MultipleAddressSpaces
この論理型プロパティーが Checked に設定されていると、IBM® Rational® Rhapsody® は複数アドレス空間フィーチャーに必要なコード生成設定を使用します。このプロパティーのデフォルト値は Cleared です。したがって、このフィーチャーを有効にするには、値を変更する必要があります。
別のアドレス空間からイベントを受信できるようにするには、リアクティブ・オブジェクトの識別用の名前を公開する必要があります。このためには、以下の 2 つのプロパティー (クラス・レベルで設定) を使用します。
- C_CG::Class::PublishedName 分散型イベントを送信するときにリアクティブ・オブジェクトの識別用に使用される名前です。
クラスのリアクティブ・インスタンスが 1 つのみの場合に、このプロパティーの値がオブジェクトの特定に使用されます。
クラスのリアクティブ・インスタンスが複数あり、それぞれ明示的に名前を付けられている場合、リアクティブ・オブジェクトの識別に使用される名前はオブジェクトに対して指定された名前であり、このプロパティー値ではありません。
リアクティブ・インスタンスが複数あって、オブジェクトに明示的に名前が付けられていない場合は、リアクティブ・オブジェクトの識別に使用される名前は、発行される名前 + オブジェクトのインデックス値になります。例えば PublishedName プロパティーの値が truck ならオブジェクトは truck[0], truck[1] によって識別されます。
- C_CG::Class::PublishInstance
この Boolean プロパティーは、分散型イベントを受信できるリアクティブ・インスタンスとしてオブジェクトが公開されるかどうかを指定します。
さらに、構成レベルで設定された以下のプロパティーを使用して、イベント送信時に特定のターゲット・アドレス空間を指定できます。アドレス空間を越えるイベント送信用の APIを参照してください。
- C_CG::Configuration::AddressSpaceName
特定のアドレス空間内のリアクティブ・オブジェクトにイベントを送信する場合は、このプロパティーの値を接頭辞として使用してアドレス空間を指定します。このときに使用するフォーマットは addressSpaceName::publishedNameOfReactiveObject です。このプロパティーのデフォルト値は、該当するコンポーネントの名前です。
アドレス空間を越えて送信されるイベントが引数を持たない場合、または引数としてプリミティブ型 (integers または chars など) のみを持つ場合は、前述のプロパティーを設定するだけで十分です。
ただし、送信するイベントが引数としてオブジェクトを含んでいる場合は、イベント・レベルで以下のプロパティーも設定する必要があります。
- C_CG::Event::SerializationFunction 使用するユーザー提供型のシリアル化関数の名前
- C_CG::Event::UnserializationFunction 使用するユーザー提供型の非シリアル化関数の名前
この 2 つのユーザー提供型関数の必須構造の詳細については、シリアル化と非シリアル化の関数を参照してください。