/// @brief scff_interprocessから変換 public void LoadFromInterprocess(scff_interprocess.Directory input) { this.Entries.Clear(); const int kMaxEntry = scff_interprocess.Interprocess.kMaxEntry; for (int i = 0; i < kMaxEntry; i++) { if (input.entries[i].process_id == 0) { continue; } this.Entries.Add(new Entry(input.entries[i])); } }
/// @brief scff_interprocessモジュールのパラメータを生成 public static scff_interprocess.Directory ToInterprocessDirectory(Directory input) { scff_interprocess.Directory output = new scff_interprocess.Directory(); // Listの前から順番に書き込む const int kMaxEntry = scff_interprocess.Interprocess.kMaxEntry; output.entries = new scff_interprocess.Entry[kMaxEntry]; for (int i = 0; i < kMaxEntry; i++) { if (i < input.Entries.Count) { output.entries[i] = EntryFactory.ToInterprocessEntry(input.Entries[i]); } else { // C#はインスタンスは勝手にゼロクリアされる output.entries[i] = new scff_interprocess.Entry(); } } return output; }