기본 오퍼레이션

IBM® Rational® Rhapsody®가 자동으로 생성하는 오퍼레이션 외에, 오브젝트에 대한 사용자 고유의 오퍼레이션을 정의할 수 있습니다. 각 오퍼레이션에는 이름과 리턴 유형이 있으며 인수를 포함할 수 있습니다. Rational Rhapsody에서는 사용자 정의 오퍼레이션을 기본 오퍼레이션이라고 합니다.

오브젝트 오퍼레이션(함수 또는 글로벌 오퍼레이션과 반대로)은 리턴 유형이 동일한 C 함수에 맵핑됩니다. 오퍼레이션에 대해 생성된 첫 번째 인수는 오퍼레이션이 작동하는 특정 오브젝트에 대한 포인터입니다. 모델에 지정된 대로, me 포인터 다음에는 원래 오퍼레이션 인수 목록이 있습니다.

예를 들어, B 오브젝트 유형의 print() 오퍼레이션에 대해 다음 프로토타입이 생성됩니다.

void B_print(B* const me);

B에 대한 스펙 파일에서 함수 프로토타입이 생성됩니다. 유일한 인수는 me라고 하는 B 유형의 오브젝트에 대한 포인터입니다.

모델에서 Bprint() 오퍼레이션에 대한 구현에 다음 행을 입력하십시오.

char *str;
str = "This is B";
printf("%s\n", str);

구현 파일의 print() 본문에 다음 행이 추가됩니다.

void B_print(B* const me) {
    NOTIFY_OPERATION(me, NULL, B, print, print(), 0,
        print_SERIALIZE);
    {
        /*#[ operation print() */
        char *str;
        str = "This is B";
        printf("%s\n", str);
        /*#]*/
    }
}

/*#[/*#] 기호 사이에서 오퍼레이션을 수동으로 편집하십시오. 코드 > 라운드트립 > <구성 이름>을 선택하여 변경사항을 다시 모델로 라운드트립하십시오.

애니메이션이 사용되고 오퍼레이션에 애니메이트해야 할 인수가 없는 경우 오퍼레이션에 대해 SERIALIZE 매크로가 생성됩니다(예: print_SERIALIZE). SERIALIZE 매크로는 인스트루먼테이션 중에 오퍼레이션을 표시하기 위해 사용됩니다. 인라인 오퍼레이션에 대해서는 SERIALIZE 매크로가 생성되지 않습니다.


피드백