updated track_progress
restored accidentally deleted source file.
This commit is contained in:
parent
d5c8fd1bf8
commit
8a6f9144c4
@ -44,6 +44,7 @@
|
||||
- Status: completed
|
||||
- Description: Explicit synchronization and concurrent collections
|
||||
- Last Update: 2025-05-11
|
||||
- Updated By: Stan44
|
||||
|
||||
## spatial_interfaces
|
||||
- Status: completed
|
||||
@ -55,6 +56,11 @@
|
||||
- Description: Parallel processing of chunks based on spatial queries and regions
|
||||
- Last Update: 2025-05-11
|
||||
|
||||
## feature_tracking
|
||||
- Status: completed
|
||||
- Description: Track feature statuses
|
||||
- Last Update: 2025-05-11
|
||||
|
||||
## priority_loading
|
||||
- Status: in_progress
|
||||
- Description: Prioritized chunk loading system (partially implemented)
|
||||
@ -62,12 +68,12 @@
|
||||
|
||||
## dependency_tracking
|
||||
- Status: in_progress
|
||||
- Description: Dependency-aware disposal logic
|
||||
- Description: Dependency-aware disposal logic (Partially Implemented)
|
||||
- Last Update: 2025-05-10
|
||||
|
||||
## dispose_pattern
|
||||
- Status: in_progress
|
||||
- Description: Full dispose pattern with finalizers for unmanaged resources
|
||||
- Description: Full dispose pattern with finalizers for unmanaged resources (Partially Implemented)
|
||||
- Last Update: 2025-05-10
|
||||
|
||||
## exception_handling
|
||||
@ -82,29 +88,19 @@
|
||||
|
||||
## progress_tracking
|
||||
- Status: in_progress
|
||||
- Description: Track progress and auto-update status documents (mostly implemented)
|
||||
- Last Update: 2025-05-10
|
||||
- Description: Track progress and auto-update status documents (mostly implemented kinda still manual...)
|
||||
- Last Update: 2025-05-11
|
||||
|
||||
## git_integration
|
||||
- Status: in_progress
|
||||
- Description: Parse Git logs for status updates (partially implemented)
|
||||
- Last Update: 2025-05-10
|
||||
|
||||
## feature_tracking
|
||||
- Status: in_progress
|
||||
- Description: Track feature statuses (partially implemented)
|
||||
- Last Update: 2025-05-10
|
||||
- Description: Parse Git logs for status updates (partially implemented testing with this push.)
|
||||
- Last Update: 2025-05-11
|
||||
|
||||
## doc_generation
|
||||
- Status: in_progress
|
||||
- Description: Auto-generate status docs and changelog (partially implemented)
|
||||
- Last Update: 2025-05-10
|
||||
|
||||
## todo_management
|
||||
- Status: in_progress
|
||||
- Description: Automate updates based on code reviews and commits
|
||||
- Last Update: 2025-05-10
|
||||
|
||||
## dependency_interfaces
|
||||
- Status: planned
|
||||
- Description: Interface-level dependency methods
|
||||
|
||||
@ -2,6 +2,51 @@
|
||||
|
||||
Last updated: 2025-05-11
|
||||
|
||||
## Code Statistics
|
||||
|
||||
Total lines of code: **7331**
|
||||
|
||||
Number of source files: **34**
|
||||
|
||||
### All Files by Line Count
|
||||
|
||||
| File | Lines | Path |
|
||||
|------|------:|------|
|
||||
| SpatialChunkIndex.cs | 1228 | src/AdvChkSys\Spatial\SpatialChunkIndex.cs |
|
||||
| ChunkLoadingPriority.cs | 677 | src/AdvChkSys\Loading\ChunkLoadingPriority.cs |
|
||||
| ChunkThreadingExtensions.cs | 380 | src/AdvChkSys\Threading\ChunkThreadingExtensions.cs |
|
||||
| ChunkManager2D.cs | 313 | src/AdvChkSys\Manager\ChunkManager2D.cs |
|
||||
| ChunkDependencyTracker.cs | 310 | src/AdvChkSys\Dependencies\ChunkDependencyTracker.cs |
|
||||
| ChunkTaskScheduler.cs | 310 | src/AdvChkSys\Threading\ChunkTaskScheduler.cs |
|
||||
| ChunkThreadingManager.cs | 281 | src/AdvChkSys\Threading\ChunkThreadingManager.cs |
|
||||
| ChunkOperationQueue.cs | 274 | src/AdvChkSys\Threading\ChunkOperationQueue.cs |
|
||||
| ChunkThreadingDiagnostics.cs | 273 | src/AdvChkSys\Threading\ChunkThreadingDiagnostics.cs |
|
||||
| ChunkThreadingPerformanceMonitor.cs | 257 | src/AdvChkSys\Threading\ChunkThreadingPerformanceMonitor.cs |
|
||||
| ChunkParallelProcessor.cs | 252 | src/AdvChkSys\Threading\ChunkParallelProcessor.cs |
|
||||
| ChunkManager3D.cs | 244 | src/AdvChkSys\Manager\ChunkManager3D.cs |
|
||||
| ChunkThreadSafetyManager.cs | 237 | src/AdvChkSys\Threading\ChunkThreadSafetyManager.cs |
|
||||
| ChunkThreadingExtensions2.cs | 223 | src/AdvChkSys\Threading\ChunkThreadingExtensions2.cs |
|
||||
| Chunk3D.cs | 215 | src/AdvChkSys\Chunk\Chunk3D.cs |
|
||||
| ChunkSerializer.cs | 194 | src/AdvChkSys\Serialization\ChunkSerializer.cs |
|
||||
| Chunk2D.cs | 174 | src/AdvChkSys\Chunk\Chunk2D.cs |
|
||||
| LimitedConcurrencyTaskScheduler.cs | 170 | src/AdvChkSys\Threading\LimitedConcurrencyTaskScheduler.cs |
|
||||
| ChunkAsyncLock.cs | 167 | src/AdvChkSys\Threading\ChunkAsyncLock.cs |
|
||||
| AdvChkSys.cs | 162 | src/AdvChkSys\AdvChkSys.cs |
|
||||
| MemoryUsageReporter.cs | 140 | src/AdvChkSys\Diagnostics\MemoryUsageReporter.cs |
|
||||
| LRUCache.cs | 135 | src/AdvChkSys\Util\LRUCache.cs |
|
||||
| ChunkEvents.cs | 126 | src/AdvChkSys\Events\ChunkEvents.cs |
|
||||
| MemoryHelper.cs | 101 | src/AdvChkSys\Util\MemoryHelper.cs |
|
||||
| ChunkThreadingConfiguration.cs | 98 | src/AdvChkSys\Threading\ChunkThreadingConfiguration.cs |
|
||||
| ChunkResourceManager.cs | 72 | src/AdvChkSys\Resources\ChunkResourceManager.cs |
|
||||
| WorldConstraints.cs | 67 | src/AdvChkSys\Constraints\WorldConstraints.cs |
|
||||
| ChunkTaskSchedulerExtensions.cs | 63 | src/AdvChkSys\Threading\ChunkTaskSchedulerExtensions.cs |
|
||||
| ChunkExtensions.cs | 40 | src/AdvChkSys\Spatial\ChunkExtensions.cs |
|
||||
| IChunkManager.cs | 38 | src/AdvChkSys\Interfaces\IChunkManager.cs |
|
||||
| IChunk.cs | 36 | src/AdvChkSys\Interfaces\IChunk.cs |
|
||||
| CacheCapacityHelper.cs | 30 | src/AdvChkSys\Util\CacheCapacityHelper.cs |
|
||||
| AdvChkSys.AssemblyInfo.cs | 22 | src/AdvChkSys\obj\Debug\netstandard2.1\AdvChkSys.AssemblyInfo.cs |
|
||||
| AdvChkSys.AssemblyInfo.cs | 22 | src/AdvChkSys\obj\Release\netstandard2.1\AdvChkSys.AssemblyInfo.cs |
|
||||
|
||||
## Feature Status
|
||||
|
||||
| Feature | Status | Description | Last Update |
|
||||
@ -17,16 +62,15 @@ Last updated: 2025-05-11
|
||||
| Thread Sync | [COMPLETED] | Explicit synchronization and concurrent collections | 2025-05-11 |
|
||||
| Spatial Interfaces | [COMPLETED] | Interface-level spatial query methods with support for custom filters | 2025-05-11 |
|
||||
| Parallel Processing | [COMPLETED] | Parallel processing of chunks based on spatial queries and regions | 2025-05-11 |
|
||||
| Feature Tracking | [COMPLETED] | Track feature statuses | 2025-05-11 |
|
||||
| Priority Loading | [IN PROGRESS] | Prioritized chunk loading system (partially implemented) | 2025-05-10 |
|
||||
| Dependency Tracking | [IN PROGRESS] | Dependency-aware disposal logic | 2025-05-10 |
|
||||
| Dispose Pattern | [IN PROGRESS] | Full dispose pattern with finalizers for unmanaged resources | 2025-05-10 |
|
||||
| Dependency Tracking | [IN PROGRESS] | Dependency-aware disposal logic (Partially Implemented) | 2025-05-10 |
|
||||
| Dispose Pattern | [IN PROGRESS] | Full dispose pattern with finalizers for unmanaged resources (Partially Implemented) | 2025-05-10 |
|
||||
| Exception Handling | [IN PROGRESS] | Better async exception handling with specific types and logging | 2025-05-10 |
|
||||
| Performance Metrics | [IN PROGRESS] | Track load times, cache hit rates, and memory usage (partially implemented) | 2025-05-10 |
|
||||
| Progress Tracking | [IN PROGRESS] | Track progress and auto-update status documents (mostly implemented) | 2025-05-10 |
|
||||
| Git Integration | [IN PROGRESS] | Parse Git logs for status updates (partially implemented) | 2025-05-10 |
|
||||
| Feature Tracking | [IN PROGRESS] | Track feature statuses (partially implemented) | 2025-05-10 |
|
||||
| Progress Tracking | [IN PROGRESS] | Track progress and auto-update status documents (mostly implemented kinda still manual...) | 2025-05-11 |
|
||||
| Git Integration | [IN PROGRESS] | Parse Git logs for status updates (partially implemented testing with this push.) | 2025-05-11 |
|
||||
| Doc Generation | [IN PROGRESS] | Auto-generate status docs and changelog (partially implemented) | 2025-05-10 |
|
||||
| Todo Management | [IN PROGRESS] | Automate updates based on code reviews and commits | 2025-05-10 |
|
||||
| Dependency Interfaces | [PLANNED] | Interface-level dependency methods | 2025-05-10 |
|
||||
| Runtime Config | [PLANNED] | Runtime-adjustable configuration options | 2025-05-10 |
|
||||
| Known Issues | [IN PROGRESS] | Edge chunk unload delay under high concurrency | 2025-05-10 |
|
||||
|
||||
@ -20,10 +20,41 @@ CHANGELOG_TAG_RE = re.compile(r"\[changelog:(.+?)\]")
|
||||
FEATURE_TAG_RE = re.compile(r"\[feature:(\w+)\]")
|
||||
NEW_FEATURE_RE = re.compile(r"\[new-feature:(\w+):(.+?)\]")
|
||||
|
||||
|
||||
# Ensure directories exist
|
||||
os.makedirs(os.path.dirname(STATUS_DOC), exist_ok=True)
|
||||
os.makedirs(os.path.dirname(FEATURES_FILE), exist_ok=True)
|
||||
|
||||
|
||||
def count_lines_of_code():
|
||||
"""Count lines of code in the project and return statistics."""
|
||||
import os
|
||||
import glob
|
||||
|
||||
stats = {}
|
||||
total_lines = 0
|
||||
file_stats = []
|
||||
|
||||
# Find all .cs files in the src/AdvChkSys directory and subdirectories
|
||||
cs_files = glob.glob("src/AdvChkSys/**/*.cs", recursive=True)
|
||||
|
||||
for file_path in cs_files:
|
||||
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
|
||||
lines = len(f.readlines())
|
||||
total_lines += lines
|
||||
file_name = os.path.basename(file_path)
|
||||
file_stats.append((file_name, lines, file_path))
|
||||
|
||||
# Sort by line count in descending order
|
||||
file_stats.sort(key=lambda x: x[1], reverse=True)
|
||||
|
||||
stats["total_lines"] = total_lines
|
||||
stats["file_count"] = len(cs_files)
|
||||
stats["files"] = file_stats
|
||||
|
||||
return stats
|
||||
|
||||
|
||||
# Load features from Markdown file if it exists
|
||||
features = {}
|
||||
if os.path.exists(FEATURES_FILE):
|
||||
@ -169,6 +200,21 @@ with open(STATUS_DOC, "w", encoding="utf-8") as f:
|
||||
f.write("# AdvChkSys Development Status\n\n")
|
||||
f.write(f"Last updated: {datetime.now().strftime('%Y-%m-%d')}\n\n")
|
||||
|
||||
# Add code statistics section
|
||||
f.write("## Code Statistics\n\n")
|
||||
code_stats = count_lines_of_code()
|
||||
f.write(f"Total lines of code: **{code_stats['total_lines']}**\n\n")
|
||||
f.write(f"Number of source files: **{code_stats['file_count']}**\n\n")
|
||||
|
||||
f.write("### All Files by Line Count\n\n")
|
||||
f.write("| File | Lines | Path |\n")
|
||||
f.write("|------|------:|------|\n")
|
||||
|
||||
for file_name, lines, file_path in code_stats["files"]:
|
||||
f.write(f"| {file_name} | {lines} | {file_path} |\n")
|
||||
|
||||
f.write("\n")
|
||||
|
||||
f.write("## Feature Status\n\n")
|
||||
f.write("| Feature | Status | Description | Last Update |\n")
|
||||
f.write("|---------|--------|-------------|-------------|\n")
|
||||
|
||||
@ -0,0 +1,63 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AdvChkSys.Threading
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides additional methods for the ChunkTaskScheduler.
|
||||
/// </summary>
|
||||
public static class ChunkTaskSchedulerExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Maximum degree of parallelism for chunk operations.
|
||||
/// </summary>
|
||||
public static int MaxDegreeOfParallelism { get; set; } = Environment.ProcessorCount;
|
||||
|
||||
/// <summary>
|
||||
/// Runs a batch of actions in parallel.
|
||||
/// </summary>
|
||||
/// <param name="actions">The actions to run</param>
|
||||
/// <param name="maxDegreeOfParallelism">Maximum degree of parallelism (null for default)</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>A task that completes when all actions are done</returns>
|
||||
public static Task RunBatchParallelAsync(
|
||||
Action[] actions,
|
||||
int? maxDegreeOfParallelism = null,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (actions == null || actions.Length == 0)
|
||||
return Task.CompletedTask;
|
||||
|
||||
return Task.Run(() =>
|
||||
{
|
||||
var options = new ParallelOptions
|
||||
{
|
||||
MaxDegreeOfParallelism = maxDegreeOfParallelism ?? MaxDegreeOfParallelism,
|
||||
CancellationToken = cancellationToken
|
||||
};
|
||||
|
||||
Parallel.ForEach(actions, options, action => action());
|
||||
}, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a cancellation token with a timeout.
|
||||
/// </summary>
|
||||
/// <param name="timeout">The timeout</param>
|
||||
/// <param name="cancellationToken">Optional token to combine with the timeout</param>
|
||||
/// <returns>A cancellation token that will be canceled after the timeout or when the input token is canceled</returns>
|
||||
public static CancellationToken CreateTimeoutToken(
|
||||
TimeSpan timeout,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (timeout == TimeSpan.MaxValue)
|
||||
return cancellationToken;
|
||||
|
||||
var source = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
|
||||
source.CancelAfter(timeout);
|
||||
return source.Token;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user