From d7d8721cc528465462d3145c00f9aff468eb2c45 Mon Sep 17 00:00:00 2001 From: DilmurodDeveloper Date: Wed, 23 Jul 2025 18:10:59 +0500 Subject: [PATCH] BROKERS: Implement Queue --- .../IQueueBroker.ExternalPersonPetEvent.cs | 15 +++++++++ xChanger.Api/Brokers/Queues/IQueueBroker.cs | 10 ++++++ .../QueueBroker.ExternalPersonPetEvent.cs | 31 +++++++++++++++++++ xChanger.Api/Brokers/Queues/QueueBroker.cs | 10 ++++++ 4 files changed, 66 insertions(+) create mode 100644 xChanger.Api/Brokers/Queues/IQueueBroker.ExternalPersonPetEvent.cs create mode 100644 xChanger.Api/Brokers/Queues/IQueueBroker.cs create mode 100644 xChanger.Api/Brokers/Queues/QueueBroker.ExternalPersonPetEvent.cs create mode 100644 xChanger.Api/Brokers/Queues/QueueBroker.cs diff --git a/xChanger.Api/Brokers/Queues/IQueueBroker.ExternalPersonPetEvent.cs b/xChanger.Api/Brokers/Queues/IQueueBroker.ExternalPersonPetEvent.cs new file mode 100644 index 0000000..3e0c6db --- /dev/null +++ b/xChanger.Api/Brokers/Queues/IQueueBroker.ExternalPersonPetEvent.cs @@ -0,0 +1,15 @@ +//- - - - - - - - - - - - - - - - - - - - - - - - - - +// Copyright (c) Coalition of Good-Hearted Engineers +// Free to Use for Precise File Conversion +//- - - - - - - - - - - - - - - - - - - - - - - - - - + +using xChanger.Api.Models.Foundations.ExternalPersons; + +namespace xChanger.Api.Brokers.Queues +{ + public partial interface IQueueBroker + { + ValueTask AddExternalPersonPets(List externalPersonPets); + ValueTask> ReadExternalPersonPets(); + } +} diff --git a/xChanger.Api/Brokers/Queues/IQueueBroker.cs b/xChanger.Api/Brokers/Queues/IQueueBroker.cs new file mode 100644 index 0000000..fbe1c46 --- /dev/null +++ b/xChanger.Api/Brokers/Queues/IQueueBroker.cs @@ -0,0 +1,10 @@ +//- - - - - - - - - - - - - - - - - - - - - - - - - - +// Copyright (c) Coalition of Good-Hearted Engineers +// Free to Use for Precise File Conversion +//- - - - - - - - - - - - - - - - - - - - - - - - - - + +namespace xChanger.Api.Brokers.Queues +{ + public partial interface IQueueBroker + { } +} diff --git a/xChanger.Api/Brokers/Queues/QueueBroker.ExternalPersonPetEvent.cs b/xChanger.Api/Brokers/Queues/QueueBroker.ExternalPersonPetEvent.cs new file mode 100644 index 0000000..6c9791e --- /dev/null +++ b/xChanger.Api/Brokers/Queues/QueueBroker.ExternalPersonPetEvent.cs @@ -0,0 +1,31 @@ +//- - - - - - - - - - - - - - - - - - - - - - - - - - +// Copyright (c) Coalition of Good-Hearted Engineers +// Free to Use for Precise File Conversion +//- - - - - - - - - - - - - - - - - - - - - - - - - - + +using xChanger.Api.Models.Foundations.ExternalPersons; + +namespace xChanger.Api.Brokers.Queues +{ + public partial class QueueBroker + { + private static readonly Queue> externalPersonPetsQueue = new(); + + public ValueTask AddExternalPersonPets(List externalPersonPets) + { + externalPersonPetsQueue.Enqueue(externalPersonPets); + return ValueTask.CompletedTask; + } + + public ValueTask> ReadExternalPersonPets() + { + if (externalPersonPetsQueue.Count == 0) + { + return new ValueTask>(new List()); + } + + List externalPersonPets = externalPersonPetsQueue.Dequeue(); + return new ValueTask>(externalPersonPets); + } + } +} diff --git a/xChanger.Api/Brokers/Queues/QueueBroker.cs b/xChanger.Api/Brokers/Queues/QueueBroker.cs new file mode 100644 index 0000000..898ff86 --- /dev/null +++ b/xChanger.Api/Brokers/Queues/QueueBroker.cs @@ -0,0 +1,10 @@ +//- - - - - - - - - - - - - - - - - - - - - - - - - - +// Copyright (c) Coalition of Good-Hearted Engineers +// Free to Use for Precise File Conversion +//- - - - - - - - - - - - - - - - - - - - - - - - - - + +namespace xChanger.Api.Brokers.Queues +{ + public partial class QueueBroker : IQueueBroker + { } +}