1- using System . Text . Json . Serialization ;
2- using System . Threading ;
3-
4- namespace ByteSync . ServerCommon . Entities ;
1+ namespace ByteSync . ServerCommon . Entities ;
52
63public class SynchronizationProgressEntity
74{
8- private long _processedVolume ;
9- private long _exchangedVolume ;
10- private long _versionNumber ;
11- private long _totalActionsCount ;
12- private long _finishedActionsCount ;
13- private int _errorsCount ;
14- [ NonSerialized ]
15- private readonly object _lockObject = new object ( ) ;
16-
175 public SynchronizationProgressEntity ( )
186 {
197 Members = new List < string > ( ) ;
208 CompletedMembers = new List < string > ( ) ;
219 }
2210
23- [ JsonPropertyName ( "processedVolume" ) ]
24- public long ProcessedVolume
25- {
26- get => _processedVolume ;
27- set => Interlocked . Exchange ( ref _processedVolume , value ) ;
28- }
29-
30- [ JsonPropertyName ( "exchangedVolume" ) ]
31- public long ExchangedVolume
32- {
33- get => _exchangedVolume ;
34- set => Interlocked . Exchange ( ref _exchangedVolume , value ) ;
35- }
36-
37- [ JsonPropertyName ( "versionNumber" ) ]
38- public long VersionNumber
39- {
40- get => _versionNumber ;
41- set => Interlocked . Exchange ( ref _versionNumber , value ) ;
42- }
43-
44- [ JsonPropertyName ( "totalActionsCount" ) ]
45- public long TotalActionsCount
46- {
47- get => _totalActionsCount ;
48- set => Interlocked . Exchange ( ref _totalActionsCount , value ) ;
49- }
50-
51- [ JsonPropertyName ( "finishedActionsCount" ) ]
52- public long FinishedActionsCount
53- {
54- get => _finishedActionsCount ;
55- set => Interlocked . Exchange ( ref _finishedActionsCount , value ) ;
56- }
57-
58- [ JsonPropertyName ( "errorsCount" ) ]
59- public int ErrorsCount
60- {
61- get => _errorsCount ;
62- set => Interlocked . Exchange ( ref _errorsCount , value ) ;
63- }
64-
65- [ JsonPropertyName ( "completedMembers" ) ]
66- public List < string > CompletedMembers { get ; set ; } = new List < string > ( ) ;
67-
68- [ JsonPropertyName ( "members" ) ]
69- public List < string > Members { get ; set ; } = new List < string > ( ) ;
70-
71- [ JsonIgnore ]
72- public bool AllActionsDone => FinishedActionsCount >= TotalActionsCount ;
73-
74- [ JsonIgnore ]
75- public bool AllMembersCompleted => CompletedMembers . Count == Members . Count ;
76-
77- public long AddProcessedVolume ( long value )
78- {
79- return Interlocked . Add ( ref _processedVolume , value ) ;
80- }
81-
82- public long AddExchangedVolume ( long value )
83- {
84- return Interlocked . Add ( ref _exchangedVolume , value ) ;
85- }
86-
87- public long IncrementVersionNumber ( )
88- {
89- return Interlocked . Increment ( ref _versionNumber ) ;
90- }
91-
92- public long IncrementFinishedActionsCount ( )
93- {
94- return Interlocked . Increment ( ref _finishedActionsCount ) ;
95- }
96-
97- public int IncrementErrorsCount ( )
98- {
99- return Interlocked . Increment ( ref _errorsCount ) ;
100- }
11+ public long ProcessedVolume { get ; set ; }
10112
102- public void IncrementProcessedVolume ( long volume )
103- {
104- if ( volume > 0 )
105- {
106- Interlocked . Add ( ref _processedVolume , volume ) ;
107- }
108- }
13+ public long ExchangedVolume { get ; set ; }
10914
110- public void IncrementExchangedVolume ( long volume )
111- {
112- if ( volume > 0 )
113- {
114- Interlocked . Add ( ref _exchangedVolume , volume ) ;
115- }
116- }
117-
118- public void AddCompletedMember ( string memberId )
119- {
120- if ( memberId == null ) return ;
121-
122- lock ( _lockObject )
123- {
124- if ( ! CompletedMembers . Contains ( memberId ) )
125- {
126- CompletedMembers . Add ( memberId ) ;
127- }
128- }
129- }
130-
131- public void AddMember ( string memberId )
132- {
133- if ( memberId == null ) return ;
134-
135- lock ( _lockObject )
136- {
137- if ( ! Members . Contains ( memberId ) )
138- {
139- Members . Add ( memberId ) ;
140- }
141- }
142- }
143-
144- public bool ContainsMember ( string memberId )
145- {
146- if ( memberId == null ) return false ;
147-
148- lock ( _lockObject )
149- {
150- return Members . Contains ( memberId ) ;
151- }
152- }
153-
154- public bool ContainsCompletedMember ( string memberId )
155- {
156- if ( memberId == null ) return false ;
157-
158- lock ( _lockObject )
159- {
160- return CompletedMembers . Contains ( memberId ) ;
161- }
162- }
15+ public long VersionNumber { get ; set ; }
16+
17+ public long TotalActionsCount { get ; set ; }
18+
19+ public long FinishedActionsCount { get ; set ; }
20+
21+ public int ErrorsCount { get ; set ; }
22+
23+ public List < string > CompletedMembers { get ; set ; }
24+
25+ public List < string > Members { get ; set ; }
26+
27+ public bool AllActionsDone => FinishedActionsCount >= TotalActionsCount ;
28+
29+ public bool AllMembersCompleted => CompletedMembers . Count == Members . Count ;
16330}
0 commit comments