AnimUnserializeOperation 특성으로 외부 함수 지정과 비교하십시오.
IBM® Rational® Rhapsody®는 단순 유형 및 1차원 배열의 값을 문제점 없이 애니메이션(표시)할 수 있습니다. 애니메이션 세션에서 해당 속성의 현재 값을 표시하려면 인스턴스의 기능 창을 여십시오.
그러나 날짜와 같은 보다 복잡한 유형을 애니메이션화하려면 유형이 문자열(char *)로 변환되어야 Rational Rhapsody가 유형을 표시할 수 있습니다. 이 변환은 표시하려는 유형의 하나의 인수를 사용하고 char *를 리턴하는 글로벌 함수인 인스트루먼테이션 함수를 작성하여 수행됩니다. 인스트루먼테이션 함수 자체의 애니메이션을 사용하지 않아야 합니다(함수에 Animate 및 AnimateArguments 특성 사용).
예를 들어, tDate 유형을 다음과 같이 정의할 수 있습니다.
typedef struct date {
int day;
int month;
int year; } %s;
int 유형의 속성 개수와 tDate 유형의 속성 날짜를 갖는 오브젝트가 존재할 수 있습니다. 오브젝트에는 다음 본문이 있는 초기자(initializer)가 있습니다.
me->date.month = 5; me->date.day = 12; me->date.year = 2000;
날짜 속성을 애니메이션화하려면 날짜의 AnimSerializeOperation 특성을 tDate 유형을 char *로 변환하는 함수의 이름으로 설정해야 합니다. 예를 들어, 특성을 showDate 함수로 설정할 수 있습니다. 이 함수 이름은 소괄호 없이 입력해야 합니다. tDate 유형의 속성을 사용하고 char *를 리턴해야 합니다. showDate 함수의 Animate 및 AnimateArguments 속성은 선택 취소로 설정되어야 합니다.
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 함수에서 호출되었음을 보여줍니다.