Synchroniczna kolejka C++17
Доповни доданий шаблон так, щоб клас SBuffer był implementacją synchronizowanej kolejki. Kolejka powinna dodatkowo zarządzać pulą obiektów typu ItemType. Konstruktor obiektu klasy SBuffer ma utworzyć N obiektów typu ItemType. Wskaźniki mogą być zwracane wyłącznie na te obiekty przez zaimplementowane metody. Można również założyć, że wszystkie wskaźniki przekazane w argumentach były wcześniej zwrócone innymi metodami tego samego obiektu.
Specyfikacja metod:
int enqueue(ItemType* item)— dodaje na koniec kolejki obiekt, na który wskazujeitem, i zwraca1. Jeśli wcześniej wywołanostop(), nic nie robi i zwraca0.ItemType* dequeue()— usuwa obiekt z początku kolejki i zwraca wskaźnik na niego. Jeśli kolejka jest pusta, zawiesza wykonywanie wątku do momentu pojawienia się dostępnego obiektu lub wywołania metodystopdla obiektu kolejki.ItemType* allocItem()— zwraca dowolny obiekt typuItemTypez puli obecnie nieużywanych obiektów. Jeśli wszystkie obiekty są zajęte, zawiesza wykonywanie wątku do momentu zwolnienia któregoś obiektu lub wywołania metodystop.void freeItem(ItemType* item)— oznacza zwolnienie zasobu przez wątek. Przekazany obiekt*itemma wrócić do puli nieużywanych obiektów.void stop()— od momentu wywołaniastopna obiekcie kolejki, metodaallocItemzawsze zwracanullptr, a metodadequeuezwraca obiekty, dopóki kolejka nie będzie pusta; po tym zawsze zwracanullptr.
Kolejka musi działać zgodnie ze specyfikacją podczas korzystania z niej przez wiele wątków. Rozwiązania oparte na aktywnym oczekiwaniu nie są dozwolone.
Warunki:
1. **Zakaz generacji LLM:** kod będzie obowiązkowo sprawdzany pod kątem plagiatu z publicznych modeli AI — bezwzględnie zabronione jest korzystanie z publicznych LLM do pisania kodu.
2. **Ocena:** Twój plik zostanie załadowany do systemu automatycznego testowania. Aby zostać zaakceptowanym, musi przejść wszystkie testy bez błędów.
Szablon rozwiązania
Należy dostarczyć wyłącznie plik nagłówkowy sbuffer.h. Do synchronizacji wątków proszę używać możliwości standardowej biblioteki C++17.
Załączniki 1
Opinia zleceniodawcy o współpracy z Roman Biniukov
Synchroniczna kolejka C++17Praca wykonana szybko i jakościowo.
Opinia freelancera o współpracy z Vadym Hassieiev
Synchroniczna kolejka C++17Wszystko w porządku, dziękuję za projekt
-
762 12 0 Dzień dobry. Zadanie nie wygląda na skomplikowane. Przejrzałem plik sbuffer.h. Zrealizuję zgodnie z wymaganiami. Proszę się kontaktować
Aktualne zlecenia dla freelancerów w kategorii C i C++
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x)
82 PLN
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x) na identycznej platformie sprzętowej (ESP32 + SX1268, 2W) według kryteriów zasięgu, przepustowości, stabilności łącza i zużycia energii. Przeprowadzić… C i C++, C# ∙ 4 dni 4 godziny temu ∙ 2 oferty |
Konsultacja i audyt bieżącego projektu na Odoo 19 Community EditionSzukamy programisty Odoo — samodzielnego dewelopera z doświadczeniem w pracy z Odoo 19 Community Edition, w tym z wykorzystaniem Claude Code. Potrzebujemy specjalisty, który ma zrealizowane projekty w Odoo oraz praktyczne doświadczenie w programowaniu z użyciem Claude Code.… C i C++, Javascript & Typescript ∙ 7 dni 5 godzin temu ∙ 8 ofert |
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 8 dni 6 godzin temu ∙ 4 oferty |
Czarna Ukraina (projekt RP na bazie MTA)
4253 PLN
|