AnimUnserializeOperation プロパティーを使用した外部関数の指定と比較してください。
IBM® Rational® Rhapsody® は、単純型と 1 次元配列の値を問題なくアニメーション化 (表示) できます。 アニメーション・セッションでそのような属性の現行値を表示するには、インスタンスの「フィーチャー」ウィンドウを開きます。
しかし、日付など、より複雑な型をアニメーション化する場合、Rational Rhapsody がそれを表示するには型を文字列 (char *) に変換する必要があります。この変換は通常、 表示する型の引数を 1 つ受け取り、char * を返すグローバル関数、トレース/アニメーション設定関数 を作成することで行うことができます。 トレース/アニメーション設定関数自体のアニメーションは無効にする必要があります (関数の Animate と AnimateArguments プロパティーを使用)。
typedef struct date {
int day;
int month;
int year; } %s;
型 int の属性 count と型 tDate の属性 date を持つオブジェクトを持つことができます。そのオブジェクトは、以下の本体を含むイニシャライザーを持つことができます。
me->date.month = 5; me->date.day = 12; me->date.year = 2000;
date 属性をアニメーション化するには、 date の AnimSerializeOperation プロパティーを型 tDate を char * に変換する関数の名前に設定する必要があります。例えば、プロパティーを showDate という名前の関数に設定できます。この関数名は、括弧を付けずに入力する必要があります。 これは型 tDate の属性をとり、char * を返す必要があります。showDate 関数の Animate と AnimateArguments プロパティーは Cleared に設定する必要があります。
showDate(tDate aDate) {
char* buff;
buff = (char*) malloc(sizeof(char) * 20);
sprintf(buff,"%d %d %d",
aDate.month,aDate.day,aDate.year);
return buff;
}
このモデルをアニメーションで実行すると、このオブジェクトのインスタンスは、ブラウザーで日付属性の 5 12 2000 の値を表示します。
属性が含まれるクラスと同じクラスで showDate 関数が定義されていて、静的関数ではない場合、 AnimSerializeOperation プロパティーの値は、以下のようになります。
myReal->showDate
この値は、関数が OMAnimated<classname> クラスにある serializeAttributes 関数から呼び出されることを示します。