Namespace PoeShared.Scaffolding
Classes
AlphanumericStringComparer
Implements a natural comparer for strings.
ArrayPoolEventListener
AssemblyExtensions
AtomicFlag
Provides a thread-safe flag that can be set atomically. This class is optimized for performance in multi-threaded environments.
BenchmarkTimer
BinaryExtensions
Cached<T>
ChangeSetExtensions
CircularBuffer<T>
Circular buffer. When writing to a full buffer: PushBack -> removes this[0] / Front() PushFront -> removes this[Size-1] / Back() this implementation is inspired by http://www.boost.org/doc/libs/1_53_0/libs/circular_buffer/doc/circular_buffer.html because I liked their interface.
CircularSourceList<T>
Not thread safe ! There is a bug in ChangeAwareList(?) that leads to ArgumentOutOfRange in some cases
CliExtensions
CloseableReactiveObject
ComparableExtensions
ComplexProgressTracker
Manages and tracks the progress of multiple tasks, providing an aggregated progress percentage.
ConcurrentQueueUtils
ConfigurableReactiveObjectWithProperties<TProperties>
DateTimeExtensions
DateTimeUtils
DictionaryExtensions
DirectoryInfoExtensions
DisposableExtensions
DisposableReactiveRecord
EnablementControllerExtensions
EnumExtensions
EnumerableComparer<T>
Compares two sequences.
EnumerableExtensions
EnumeratorExtensions
ExceptionExtensions
ExpressionEqualityComparer
A comparer which implements IEqualityComparer<T> for Expression. This is copied from EFCore to avoid bringing all EF dependencies along with it: https://github.com/dotnet/efcore/blob/8e675829631dc49c284a779c86c2eab1d742f729/src/EFCore/Query/ExpressionEqualityComparer.cs
ExpressionUtils
Fallback<T>
FileInfoExtensions
FileProviderExtensions
FileUtils
ForcedDelayBlock
Enforces a minimum duration for a block of code execution.
GeometryExtensions
GlobalIdProvider
HierarchicalSourceCache<TObject, TKey>
HierarchicalValue<TContainer, T>
IconHelper
InMemoryFileInfo
InMemoryFileProvider
Provides an in-memory file provider for serving files and directory contents dynamically. This class implements IFileProvider to provide virtual files, allowing for dynamic creation, updates, and retrieval of file and directory structures.
Key Features:
- Stores files in memory with an DynamicData.ISourceCache<TObject, TKey> for efficient access.
- Handles URL-decoded paths to accommodate browser-originated file requests.
- Supports retrieving individual files via GetFileInfo(string).
- Supports listing directory contents via GetDirectoryContents(string).
- Automatically updates the count of files available.
IntPtrExtensions
InvalidStateException
IpAddressExtensions
JTokenExtensions
JsonUtils
KeyboardLayoutManagerExtensions
LambdaComparer<T>
LambdaEqualityComparer<T>
LazyInMemoryFileInfo
LazyReactiveObject<T>
LoggingChangeSetAdaptorBase
LoggingChangeSetAdaptor<T, TKey>
LoggingListChangeSetAdaptor<T>
MappingEnumerator<T, TResult>
NaturalStringComparer
Implements a natural comparer for strings.
NotifyPropertyChangedExtensions
NumberExtensions
ObjectExtensions
ObjectReflectionExtensions
ObservableCollectionAdaptorEx<T>
ObservableCollectionEx<T>
ObservableExtensions
ObservableListener<T>
Observables
OperationTimer
PathUtils
ProcessHelper
ProcessUtils
ReactiveList<T>
ReactiveObjectExtensions
ReactiveObjectWithProperties<TProperties>
ReactiveRecord
ReactiveSet<T>
RefCountedLinkedSet<T>
Ref-counted MRU set: items are unique by equality; each Add increments a refcount, each token Dispose decrements it; item is removed when refcount hits zero. Enumeration yields items in MRU-first order (most recently added/updated first).
RotatingCancellationTokenSource
SchedulerExtensions
SecureStringExtensions
Provides unsafe temporary operations on secured strings.
SemaphoreSlimExtensions
ServiceCollectionExtensions
ServiceHosting<T>
SetExtensions
ShellLinkUtils
SimpleProgressReporter
SourceCacheAccessor<TObject, TKey>
SourceCacheEx<T, TKey>
SourceCachesSynchronizer<TObject, TKey>
Provides synchronization between two source lists. Changes made to one list will be reflected in the other and vice versa. NOTE: The same approach for SourceList does not work as it is not really possible to distinguish between some operations in multi-threaded environment. It will work MOST of the time, but for some combinations of operation this will generate invalid sequences.
SourceListEx<T>
Slightly extended version of SourceList that materializes collection changes using specified scheduler or Immediate if not provided
StopwatchExtensions
StreamExtensions
StringExtensions
StringUtils
SynchronizedObservableCollectionEx<T>
TaskExtensions
TempFile
Represents a temporary file that can be disposed of.
ToStringBuilder
TypeExtensions
UnityContainerExtensions
VectorExtensions
VersionExtensions
WellKnownContentTypes
Provides a collection of well-known ContentType instances.
WindowHandleExtensions
WorkerTask
WorkerThread
WpfSizeExtensions
XDocumentExtensions
XmlExtensions
ZipFileUtils
Structs
AnnotatedBoolean
Represents a boolean value annotated with a string, providing additional context or information about the boolean value.
Annotated<T>
Represents a value of type T annotated with a string, providing additional context or information about the value.
Percentage
Represents a percentage value (0-100). Provides utility methods for conversion and scaling.
ProcessHelper.ProcessRunInfo
PropertyAccessor<TValue>
RandomInteger
RandomTimeSpan
ValueStopwatch
Interfaces
ICloseController
ICloseController<TValue>
ICloseable
Provides a mechanism for objects that can be closed. This interface is typically used for objects that require clean-up or release of resources when they are no longer needed. It includes a property for accessing the close controller responsible for the closing logic.
ICloseable<T>
Provides a generic mechanism for objects that can be closed, where the type of the close controller is specified. This interface is useful for objects that have type-specific closing logic or resources that need to be released in a particular manner.