활성 또는 반응 파일의 경우, IBM® Rational® Rhapsody®는 활성 또는 반응 기능을 사용하는 내재적 공용 오브젝트(싱글톤)를 생성합니다. 싱글톤의 이름은 파일의 이름입니다.
상수 수정자를 가진 변수의 경우, Rhapsody는 #define 문을 생성합니다. 예를 들어, 다음과 같습니다. #define MAX 66
다음 표는 오브젝트 코드 생성과 파일 코드 생성 간의 차이점을 표시합니다.
| 모델 요소 | 파일 코드 | 오브젝트 코드 |
|---|---|---|
| 데이터 멤버(속성, 연관 또는 오브젝트) | 글로벌 변수입니다. | 싱글톤 struct의 멤버입니다. |
| 함수 이름. <lang>_CG::Operation::PublicName 및 <lang>_CG::Operation::PrivateName 특성을 사용하여 함수(파일, 오브젝트 및 기타 요소)의 이름 패턴을 구성할 수 있습니다. | 함수 이름 패턴은 <Function>입니다. | public 함수의 이름 패턴은 <Singleton>_<function>입니다. private 함수의 패턴은 <Function>입니다. |
| 함수 시그니처 | 프레임워크 콜백 함수의 시그니처를 준수해야 할 경우(반응 동작의 경우) me 인수가 생성됩니다. | 동일합니다. |
| 초기화 | 변수 및 연관은 정의에서 직접 초기화됩니다. 예를 들면, int x=5; 오브젝트는 생성된 Init 함수에서 초기화됩니다. |
초기화 함수에서 수행됩니다. |
| 유형 이름 | 가시성에 관계없이 유형의 이름 패턴은 <Type>입니다. | public 유형의 이름 패턴은 <Singleton>_type입니다. private 함수의 이름 패턴은 <Type>입니다. <lang>_CG::Type::PublicName 및 PrivateName 특성을 사용하여 이름 패턴을 구성할 수 있습니다. |
| 가시성 | public 멤버는
스펙(.h) 파일에 extern으로 선언되며 구현(.c) 파일에 정의됩니다. 예를 들면, extern int volume; private 멤버는 구현 파일에 static으로 선언 및 정의됩니다. 예를 들면, static int volume; |
멤버 가시성은 무시됩니다. 가시성은 struct 가시성의 결과입니다. 예를 들어, 다음과 같습니다. struct Ob_t { |
| 자동 생성됨 | ||
| 초기화 및 정리 | 알고리즘 초기화만 초기화 메소드에서 수행됩니다(파트 작성, 링크, 동작 및 애니메이션 초기화). 초기화 및 정리 메소드는 필요한 경우에만 작성됩니다. 초기화 함수 이름은 <file>_Init이고 정리 함수는 <file>_Cleanup입니다. |
초기화는 Init 메소드에서 수행됩니다. Init 및 Cleanup 메소드는 기본적으로 생성됩니다. |
| 프레임워크 데이터 멤버 | Rational Rhapsody는
프레임워크 멤버만 보유한 지정된 struct와
<file>이라는 struct의 단일 인스턴스를 생성합니다.
struct 이름은 <file>_t입니다. 예를 들면, struct Motor_t
{ |
프레임워크 멤버는 오브젝트 struct 선언의 일부로 생성됩니다. |
| 호출 프레임워크 오퍼레이션 | 파일에 대한 프레임워크 오퍼레이션은 파일을 사용하여 호출됩니다. 예를 들면, CGEN(Motor, ev()); |
싱글톤에 대한 프레임워크 오퍼레이션은 싱글톤 인스턴스를 전달하여 호출됩니다. 예를 들면, CGEN(Motor,ev()); |
| 상태 차트 데이터 멤버 | 상태 차트 데이터 멤버는 생성된 구조의 속성으로 생성됩니다. 예를 들면, struct
F_t { |
상태 차트 데이터 멤버는 struct의 일부로 생성됩니다. |
| 상태 차트 함수 이름 | public 상태 차트 함수는 <file>_ 접두부를 사용하여 생성됩니다. 예를 들면, myFile_sIN() |
동일한 이름 지정 규칙을 기타 오퍼레이션으로 사용하십시오. |
<lang>_CG::Operation::PublicName 및 PrivateName 특성을 사용하여 함수(파일, 오브젝트 및 기타 요소)의 이름 패턴을 구성할 수 있습니다.