Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

A.18.31 Универсальный пакет Containers.Bounded_Priority_Queues

Статическая семантика

Определённый языком универсальный пакет Containers.Bounded_Priority_Queues предоставляет тип Queue, который реализует интерфейсный тип Containers.Synchronized_Queue_Interfaces.Queue.
с System;
с Ada.Containers.Synchronized_Queue_Interfaces;
универсальный
с пакетом Queue_Interfaces есть
новый Ada.Containers.Synchronized_Queue_Interfaces (<>);
тип Queue_Priority является частным;
с функцией Get_Priority
(Element : Queue_Interfaces.Element_Type) возвращает Queue_Priority есть <>;
с функцией Before
(Left, Right : Queue_Priority) возвращает Boolean есть <>;
Default_Capacity : Count_Type;
Default_Ceiling : System.Any_Priority := System.Priority'Last;
пакет Ada.Containers.Bounded_Priority_Queues
с Preelaborate,
Nonblocking, Global => вход/выход синхронизированный есть
пакет Implementation есть
... -- не указано языком
конец Implementation;
защищённый тип Queue
(Capacity : Count_Type := Default_Capacity;
Ceiling : System.Any_Priority := Default_Ceiling)
с Priority => Ceiling есть
новый Queue_Interfaces.Queue с
переопределяя
вход Enqueue (New_Item : вход Queue_Interfaces.Element_Type);
переопределяя
вход Dequeue (Element : выход Queue_Interfaces.Element_Type);
не переопределяя
процедура Dequeue_Only_High_Priority
(At_Least : вход Queue_Priority;
Element : вход/выход Queue_Interfaces.Element_Type;
Success : выход Boolean);
переопределяя
функция Current_Use возвращает Count_Type
с Nonblocking, Global => null, Use_Formal => null;
переопределяя
функция Peak_Use возвращает Count_Type
с Nonblocking, Global => null, Use_Formal => null;
частное
... -- не указано языком
конец Queue;
частное
... -- не указано языком
конец Ada.Containers.Bounded_Priority_Queues;
Семантика аналогична семантике Unbounded_Priority_Queues, за исключением:
  • Емкость экземпляров типа Queue ограничена и задаётся дискриминантом Capacity.

Рекомендации по реализации

Объекты ограниченных очередей с приоритетами должны быть реализованы без неявных указателей или динамического выделения памяти.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API