File tree Expand file tree Collapse file tree 8 files changed +98
-3
lines changed
backend/ServiceSimulation/Bll.Domain Expand file tree Collapse file tree 8 files changed +98
-3
lines changed Original file line number Diff line number Diff line change 88
99 <ItemGroup >
1010 <Folder Include =" Entities\" />
11- <Folder Include =" Services\" />
1211 <Folder Include =" Interfaces\" />
1312 </ItemGroup >
1413
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Factories ;
2+ using Bll . Domain . Services ;
3+
4+ namespace Bll . Domain . Entities ;
5+
6+ public class Buffer : IBuffer
7+ {
8+ private readonly IBufferManager _bufferManager ; // FACTORY DESIGN PATTERN?
9+
10+ public Buffer ( IBufferManagerFactory bufferManager )
11+ {
12+ _bufferManager = bufferManager . CreateBufferManager ( ) ;
13+ }
14+
15+ public void Push ( Request request )
16+ {
17+ _bufferManager . Add ( request ) ;
18+ }
19+
20+ public Request ? Pop ( )
21+ {
22+ return _bufferManager . Get ( ) ;
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Factories ;
2+ using Bll . Domain . Services ;
3+
4+ namespace Bll . Domain . Entities ;
5+
6+ public class BufferManagerFactory : IBufferManagerFactory
7+ {
8+ public IBufferManager CreateBufferManager ( )
9+ {
10+ return new StandardBufferManager ( ) ;
11+ }
12+ }
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Services ;
2+
3+ namespace Bll . Domain . Entities ;
4+
5+ public class StandardBufferManager : IBufferManager
6+ {
7+ public readonly LinkedList < Request > requests = new ( ) ;
8+
9+ public const int Capacity = 5 ;
10+
11+ public void Add ( Request request )
12+ {
13+ if ( requests . Count >= Capacity )
14+ {
15+ var removedRequest = requests . Last ( ) ;
16+ requests . RemoveLast ( ) ;
17+ // TODO ADD ALL DELETED REQUESTS TO SOME LOGS OR SOURCE. variable removedRequest
18+ }
19+
20+ requests . AddFirst ( request ) ;
21+ }
22+
23+ public Request ? Get ( )
24+ {
25+ if ( requests . Count == 0 )
26+ {
27+ return null ; // TODO THROW EXCEPTION?
28+ }
29+
30+ var requestFromBuffer = requests . Last ( ) ;
31+ requests . RemoveLast ( ) ;
32+
33+ return requestFromBuffer ;
34+ }
35+
36+ }
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Services ;
2+
3+ namespace Bll . Domain . Factories ;
4+
5+ public interface IBufferManagerFactory
6+ {
7+ IBufferManager CreateBufferManager ( ) ;
8+ }
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Entities ;
2+
3+ namespace Bll . Domain . Services ;
4+
5+ public interface IBuffer
6+ {
7+ void Push ( Request request ) ;
8+ Request ? Pop ( ) ;
9+ }
Original file line number Diff line number Diff line change 1+ using Bll . Domain . Entities ;
2+
3+ namespace Bll . Domain . Services ;
4+
5+ public interface IBufferManager
6+ {
7+ void Add ( Request request ) ;
8+ Request ? Get ( ) ;
9+ }
Original file line number Diff line number Diff line change @@ -5,6 +5,4 @@ namespace Bll.Domain.Services;
55public interface ISource
66{
77 Request GetNewRequest ( ) ;
8-
9-
108}
You can’t perform that action at this time.
0 commit comments