public class SdoServiceAdmin
extends java.lang.Object
このクラスは、SDO Service を管理するためのクラスである。SDO Service は OMG SDO Specification において定義されている、SDOが特定 の機能のために提供また要求するサービスの一つである。詳細は仕様にお いて定義されていないが、本クラスでは以下のように振る舞うサービスで あるものとし、これらを管理するためのクラスが本クラスである。 SDO Service においては、SDO/RTCに所有され、ある種のサービスを提供 するものを SDO Service Provider、他のSDO/RTCやアプリケーションが提 供するサービスオブジェクトの参照を受け取り、それらの機能を利用する ものを、SDO Service Consumer と呼ぶ。 SDO Service Provider は他のアプリケーションから呼ばれ、SDO/RTC内部 の機能にアクセスするために用いられる。他のSDO/RTCまたはアプリケー ションは、 - SDO::get_service_profiles () - SDO::get_service_profile (in UniqueIdentifier id) - SDO::get_sdo_service (in UniqueIdentifier id) のいずれかのオペレーションにより、ServiceProfile または SDO Service の参照を取得し、機能を利用するためのオペレーションを呼び出 す。他のSDO/RTCまたはアプリケーション上での参照の破棄は任意のタイ ミングで行われ、サービス提供側では、どこからどれだけ参照されている かは知ることはできない。一方で、SDO/RTC側も、任意のタイミングでサー ビスの提供を停止することもできるため、サービスの利用側では、常にい サービスが利用できるとは限らないものとしてサービスオペレーションを 呼び出す必要がある。 一方、SDO Service Consumer は当該SDO/RTC以外のSDO/RTCまたはアプリ ケーションがサービスの実体を持ち、当該SDO/RTCにオブジェクト参照を 含むプロファイルを与えることで、SDO/RTC側からサービスオペレーショ ンが呼ばれ外部のSDO/RTCまたはアプリケーションが提供する機能を利用 できる。また、オブザーバ的なオブジェクトを与えることで、SDO/RTC側 からのコールバックを実現するためにも利用することができる。コンシュー マは、プロバイダとは異なり、SDO Configurationインターフェースから 追加、削除が行われる。関連するオペレーションは以下のとおりである。 - Configuration::add_service_profile (in ServiceProfile sProfile) - Configuration::remove_service_profile (in UniqueIdentifier id) 外部のSDO/RTCまたはアプリケーションは、自身が持つSDO Servcie Provider の参照をIDおよびinterface type、プロパティとともに ServcieProfile にセットしたうえで、add_service_profile() の引数と して与えることで、当該SDO/RTCにサービスを与える。この際、IDはUUID など一意なIDでなければならない。また、削除する際にはIDにより対象と するServiceProfileを探索するため、サービス提供側では削除時までIDを 保持しておかなければならない。
コンストラクタと説明 |
---|
SdoServiceAdmin(RTObject_impl rtobj)
コンストラクタ
|
修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
addSdoServiceConsumer(ServiceProfile sProfile)
Service Consumer を追加する
|
boolean |
addSdoServiceProvider(ServiceProfile prof,
SdoServiceProviderBase provider)
SDO service provider をセットする
|
SDOService |
getServiceProvider(java.lang.String id)
SDO Service Provider の Service を取得する
{@.ja id で指定されたIFR IDを持つSDO Service のオブジェクトリファレン
ス を取得する。
|
ServiceProfile |
getServiceProviderProfile(java.lang.String id)
SDO Service Provider の ServiceProfile を取得する
{@.ja id で指定されたIFR IDを持つSDO Service Provider の
ServiceProfile を取得する。
|
ServiceProfile[] |
getServiceProviderProfiles()
SDO Service Provider の ServiceProfileList を取得する
|
(package private) java.lang.String |
getUUID() |
protected boolean |
isEnabledConsumerType(ServiceProfile sProfile)
許可されたサービス型かどうか調べる
|
protected boolean |
isExistingConsumerType(ServiceProfile sProfile)
存在するサービス型かどうか調べる
|
boolean |
removeSdoServiceConsumer(java.lang.String id)
Service Consumer を削除する
|
boolean |
removeSdoServiceProvider(java.lang.String id)
SDO service provider を削除する
|
protected Logbuf rtcout
public SdoServiceAdmin(RTObject_impl rtobj)
public ServiceProfile[] getServiceProviderProfiles()
public ServiceProfile getServiceProviderProfile(java.lang.String id) throws InvalidParameter
id で指定されたIFR IDを持つSDO Service Provider の ServiceProfile を取得する。id が NULL ポインタの場合、指定された id に該当するServiceProfile が存在しない場合、InvalidParameter 例外が送出される。
id
- SDO Service provider の IFR ID
InvalidParameter
public SDOService getServiceProvider(java.lang.String id)
id で指定されたIFR IDを持つSDO Service のオブジェクトリファレン ス を取得する。id が NULL ポインタの場合、指定された id に該当す るServiceProfile が存在しない場合、InvalidParameter 例外が送出さ れる。
id
- SDO Service provider の IFR ID
public boolean addSdoServiceProvider(ServiceProfile prof, SdoServiceProviderBase provider)
public boolean removeSdoServiceProvider(java.lang.String id)
public boolean addSdoServiceConsumer(ServiceProfile sProfile)
public boolean removeSdoServiceConsumer(java.lang.String id)
protected boolean isEnabledConsumerType(ServiceProfile sProfile)
protected boolean isExistingConsumerType(ServiceProfile sProfile)
final java.lang.String getUUID()