Files
CydandClaude Opus 4.8 548550b312 Initial commit: TeslaSuite monorepo (TeslaConsole + TeslaLauncher)
Co-locate the two cockpit-pod projects into a single repository:

- Console/  : TeslaConsole, the net48 WinForms operator console (decompiled
              reconstruction) plus its differential + catalog test suite.
- Launcher/ : TeslaLauncher, the net6 pod-side Service + Agent rewrite.

Adds a combined TeslaSuite.sln, root README documenting the shared wire
contract (and its current duplication, the main follow-up), and a root
.gitignore. Histories were not preserved per request; this is a fresh start
from the current working state of both projects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 14:43:28 -05:00

44 lines
655 B
C#

using System;
namespace TeslaConsole;
internal class Cached<T> where T : class
{
private T mItem;
private DateTime mNextExpireTime;
private TimeSpan mCacheDuration;
private object mSyncRoot = new object();
public T Item
{
get
{
return mItem;
}
set
{
mItem = value;
mNextExpireTime = DateTime.Now + mCacheDuration;
}
}
public bool IsExpired => DateTime.Now > mNextExpireTime;
public object SyncRoot => mSyncRoot;
public Cached(TimeSpan cacheDuration)
{
mItem = null;
mNextExpireTime = DateTime.MinValue;
mCacheDuration = cacheDuration;
}
public void Expire()
{
mNextExpireTime = DateTime.MinValue;
}
}