/// @brief scff_interprocessモジュールのパラメータから生成 public static Directory FromInterprocess(scff_interprocess.Directory input) { Directory output = new Directory(); const int kMaxEntry = scff_interprocess.Interprocess.kMaxEntry; for (int i = 0; i < kMaxEntry; i++) { if (input.entries[i].process_id == 0) continue; output.Entries.Add(EntryFactory.FromInterprocess(input.entries[i])); } return output; }
/// @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; }