jp.go.aist.rtm.RTC
クラス SdoServiceAdmin

java.lang.Object
  上位を拡張 jp.go.aist.rtm.RTC.SdoServiceAdmin

public class SdoServiceAdmin
extends java.lang.Object

SDO service 管理クラス

このクラスは、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を 保持しておかなければならない。


フィールドの概要
protected  Logbuf rtcout
          logger
 
コンストラクタの概要
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 を削除する
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

rtcout

protected Logbuf rtcout
logger

コンストラクタの詳細

SdoServiceAdmin

public SdoServiceAdmin(RTObject_impl rtobj)
コンストラクタ

メソッドの詳細

getServiceProviderProfiles

public ServiceProfile[] getServiceProviderProfiles()
SDO Service Provider の ServiceProfileList を取得する


getServiceProviderProfile

public ServiceProfile getServiceProviderProfile(java.lang.String id)
                                         throws InvalidParameter
SDO Service Provider の ServiceProfile を取得する

id で指定されたIFR IDを持つSDO Service Provider の ServiceProfile を取得する。id が NULL ポインタの場合、指定された id に該当するServiceProfile が存在しない場合、InvalidParameter 例外が送出される。

パラメータ:
id - SDO Service provider の IFR ID
戻り値:
指定された id を持つ ServiceProfile
例外:
InvalidParameter

getServiceProvider

public SDOService getServiceProvider(java.lang.String id)
SDO Service Provider の Service を取得する

id で指定されたIFR IDを持つSDO Service のオブジェクトリファレン ス を取得する。id が NULL ポインタの場合、指定された id に該当す るServiceProfile が存在しない場合、InvalidParameter 例外が送出さ れる。

パラメータ:
id - SDO Service provider の IFR ID
戻り値:
指定された id を持つ SDO Service のオブジェクトリファレンス

addSdoServiceProvider

public boolean addSdoServiceProvider(ServiceProfile prof,
                                     SdoServiceProviderBase provider)
SDO service provider をセットする


removeSdoServiceProvider

public boolean removeSdoServiceProvider(java.lang.String id)
SDO service provider を削除する


addSdoServiceConsumer

public boolean addSdoServiceConsumer(ServiceProfile sProfile)
Service Consumer を追加する


removeSdoServiceConsumer

public boolean removeSdoServiceConsumer(java.lang.String id)
Service Consumer を削除する


isEnabledConsumerType

protected boolean isEnabledConsumerType(ServiceProfile sProfile)
許可されたサービス型かどうか調べる


isExistingConsumerType

protected boolean isExistingConsumerType(ServiceProfile sProfile)
存在するサービス型かどうか調べる


getUUID

final java.lang.String getUUID()