DreamineVMS 1.0.0.0
Windows PC의 RTSP·USB 카메라 영상을 HLS로 변환해 원격 CCTV Viewer에 전달하는 데스크톱 에이전트입니다.
로딩중...
검색중...
일치하는것 없음
CameraRuntimeState.cs
이 파일의 문서화 페이지로 가기
1using System.ComponentModel;
2using System.Runtime.CompilerServices;
3
4namespace DreamineVMS.Models;
5
14public sealed class CameraRuntimeState : INotifyPropertyChanged
15{
33 private string _lastMessage = "Ready.";
42 private DateTimeOffset _lastUpdated = DateTimeOffset.Now;
51 private string? _lastError;
60 private int _restartCount;
61
70 public event PropertyChangedEventHandler? PropertyChanged;
71
80 public required string CameraId { get; init; }
81
91 {
92 get => _state;
93 set => SetField(ref _state, value);
94 }
95
104 public string LastMessage
105 {
106 get => _lastMessage;
107 set => SetField(ref _lastMessage, value);
108 }
109
118 public DateTimeOffset LastUpdated
119 {
120 get => _lastUpdated;
121 set => SetField(ref _lastUpdated, value);
122 }
123
132 public string? LastError
133 {
134 get => _lastError;
135 set => SetField(ref _lastError, value);
136 }
137
146 public int RestartCount
147 {
148 get => _restartCount;
149 set => SetField(ref _restartCount, value);
150 }
151
192 private void SetField<T>(ref T field, T value, [CallerMemberName] string? propertyName = null)
193 {
194 if (EqualityComparer<T>.Default.Equals(field, value))
195 {
196 return;
197 }
198
199 field = value;
200 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
201 }
202}
PropertyChangedEventHandler? PropertyChanged
void SetField< T >(ref T field, T value, [CallerMemberName] string? propertyName=null)