// Construction public CProject( EProjectID id, CProjectRecord old_project_record ) { ID = id; OldProjectRecord = old_project_record; NewProjectRecord = null; CreationState = EProjectCreationState.Deleted; State = EProjectState.Invalid; }
public CProject( EProjectID id, FileInfo project_file ) { ID = id; OldProjectRecord = null; NewProjectRecord = new CProjectRecord( Path.GetFileNameWithoutExtension( project_file.FullName ) ); CreationState = EProjectCreationState.New; State = EProjectState.Dirty; Parse_Project_File( project_file ); }
public CProject Get_Project_By_ID( EProjectID id ) { return m_Projects[ id ]; }
public void Build_Project_Enum_List( EProjectID project_id, List< CEnumRecord > enum_records ) { foreach ( var record in m_Enums.Values.Select( en => en.NewEnumRecord ) ) { if ( record == null ) { continue; } CHeaderFile header_file = CEnumReflector.HeaderFileTracker.Get_Header_File_By_ID( record.HeaderFileID ); if ( header_file == null ) { continue; } if ( header_file.ProjectID != project_id ) { continue; } enum_records.Add( record ); } }
public CHeaderFile( EHeaderFileID id, EProjectID project_id, CHeaderFileRecord new_record ) { ID = id; ProjectID = project_id; OldHeaderFileRecord = null; NewHeaderFileRecord = new_record; CreationState = EHeaderFileCreationState.New; State = EHeaderFileState.Dirty; }
public void Register_Header_File( EProjectID project_id, CHeaderFileRecord header_record ) { EHeaderFileID header_id = EHeaderFileID.Invalid; if ( m_HeaderFileIDMap.TryGetValue( header_record.FileNameWithPath, out header_id ) ) { CHeaderFile header_file = null; if ( !m_HeaderFiles.TryGetValue( header_id, out header_file ) ) { throw new Exception( "Internal header file mapping error" ); } header_file.Initialize_Existing( project_id, header_record ); } else { header_id = Allocate_Header_File_ID(); CHeaderFile header_file = new CHeaderFile( header_id, project_id, header_record ); m_HeaderFileIDMap.Add( header_file.FileNameWithPath, header_id ); m_HeaderFiles.Add( header_id, header_file ); } }
public void Set_Project_ID( EProjectID project_id ) { ProjectID = project_id; }
// Methods // Public interface public void Initialize_Existing( EProjectID project_id, CHeaderFileRecord new_record ) { NewHeaderFileRecord = new_record; CreationState = EHeaderFileCreationState.Unchanged; State = ( NewHeaderFileRecord.LastModifiedTime > OldHeaderFileRecord.LastModifiedTime ) ? EHeaderFileState.Dirty : EHeaderFileState.Unchanged; ProjectID = project_id; }