アクティブまたはリアクティブ・ファイルの場合、IBM® Rational® Rhapsody® は、アクティブまたはリアクティブ機能を使用するパブリックな暗黙的オブジェクト (シングルトン) を生成します。シングルトンの名前は、ファイルの名前です。
Constant 修飾子を持つ変数の場合、Rhapsody は #define ステートメントを生成します。例:
#define MAX 66
下表に、オブジェクトのコード生成とファイルのコード生成の違いを示します。
| モデル要素 | ファイル・コード | オブジェクト・コード |
|---|---|---|
| データ・メンバー (属性、関連、またはオブジェクト) | グローバル変数 | シングルトン struct 内のメンバー |
| 関数名。<lang>_CG::Operation::PublicName と <lang>_CG::Operation::PrivateName のプロパティーを使用することで、関数の名前のパターン (ファイル用、オブジェクト用、およびその他の要素用) を構成できます。 | 関数名のパターンは <Function> です。 | パブリック関数の名前パターンは <Singleton>_<function> です。 プライベート関数のパターンは <Function> です。 |
| 関数シグニチャー | フレームワーク・コールバック関数 (リアクティブ振る舞い用) のシグニチャーに従う必要がある場合は、me 引数が生成されます。 | 同じ。 |
| 初期設定 | 変数と関連は定義内で直接初期化されます。例: int x=5; オブジェクトは生成された Init 関数で初期化されます。 |
初期化関数で行われます。 |
| 型名 | 型名のパターン (可視性に関係なく) は、<Type> です。 | パブリック型の名前パターンは <Singleton>_type です。 プライベート関数の名前パターンは <Type> です。 <lang>_CG::Type::PublicName および PrivateName プロパティーを使用することで、名前パターンを構成できます。 |
| 可視性 | パブリック・メンバーは宣言 (.h) ファイル内で extern として宣言され、実装 (.c) ファイル内に定義されます。 例: extern int volume; プライベート・メンバーは実装ファイル内で 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 の一部として生成されます。 |
| ステートチャート関数名 | パブリック・ステートチャート関数は、<file>_ 接頭辞を使用して生成されます。 例: myFile_sIN() |
その他の操作と同じ命名規則を使用してください。 |
<lang>_CG::Operation::PublicName および PrivateName プロパティーを使用することで、関数の名前のパターン (ファイル用、オブジェクト用、およびその他の要素用) を構成できます。