Ссылка CMSimpleQueue
Этот документ описывает API для создания и управления CMSimpleQueues.
CMSimpleQueues
Базовые Основанные на основе объекты, реализующие простую незапертую очередь FIFO (недействительный *) элементы. Элементы, как предполагается, не являются указателями; они могли быть простыми числовыми значениями размера указателя (несмотря на то, что NULL
или 0-ценные элементы не позволяются). Если элементы являются фактически указателями на выделенные буферы памяти, буферное пожизненное управление должно быть обработано внешне.
A CMSimpleQueue
может безопасно обработать один поток постановки в очередь и один поток исключения из очереди. CMSimpleQueues
являются незапертыми. Также, Ставит в очередь, и/или Двухсторонние очереди могут произойти на CoreAudio ioProc
поток, где запрещается блокировка/блокирование. Текущий статус a CMSimpleQueue
может быть опрошен. Клиенты могут получить текущее число элементов в очереди (GetCount
) а также максимальная способность очереди (GetCapacity
). Существует также макрос удобства (GetFullness
) это использует те два APIs для вычислений Float32 между 0,0 и 1.0, представляя обилие очереди. CMSimpleQueues
может быть сброшен. Это возвращает недавно создаваемое состояние без элементов в очереди (но с максимальной неизменной способностью).
-
Возвраты
CFTypeID
изCMSimpleQueue
объекты.Объявление
Swift
func CMSimpleQueueGetTypeID() -> CFTypeID
Objective C
CFTypeID CMSimpleQueueGetTypeID ( void );
Возвращаемое значение
CFTypeID
изCMSimpleQueue
объекты.Обсуждение
Можно проверить если a
CFTypeRef
объектом является фактически CMSimpleQueue путем сравнения CFGetTypeID (объект) сCMSimpleQueueGetTypeID
().Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Создает a
CMSimpleQueue
.Объявление
Swift
func CMSimpleQueueCreate(_
allocator
: CFAllocator!, _capacity
: Int32, _queueOut
: UnsafeMutablePointer<Unmanaged<CMSimpleQueue>?>) -> OSStatusObjective C
OSStatus CMSimpleQueueCreate ( CFAllocatorRef allocator, int32_t capacity, CMSimpleQueueRef *queueOut );
Параметры
allocator
Средство выделения раньше выделяло хранение для очереди.
capacity
Способность очереди (максимальное количество элементов, holdable в любой момент времени). Требуемый (не должен быть 0). Должно быть положительное значение.
queueOut
На выводе, ссылке на недавно создаваемую очередь. Не должен быть
NULL
.Возвращаемое значение
Код результата. Посмотрите Коды Результата.
Обсуждение
По возврату вызывающей стороне принадлежит возвращенный
CMSimpleQueue
, и должен выпустить его, когда сделано с ним.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Исключает элемент из очереди от очереди.
Объявление
Swift
func CMSimpleQueueDequeue(_
queue
: CMSimpleQueue!) -> UnsafePointer<Void>Objective C
const void * CMSimpleQueueDequeue ( CMSimpleQueueRef queue );
Параметры
queue
Очередь, от которой можно исключить элемент из очереди. Не должен быть
NULL
.Возвращаемое значение
Исключенный из очереди элемент.
NULL
если была некоторая другая ошибка, если очередь была пуста, или.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает элемент во главе очереди.
Объявление
Swift
func CMSimpleQueueGetHead(_
queue
: CMSimpleQueue!) -> UnsafePointer<Void>Objective C
const void * CMSimpleQueueGetHead ( CMSimpleQueueRef queue );
Возвращаемое значение
Главный элемент.
NULL
если была некоторая другая ошибка, если очередь была пуста, или.Обсуждение
Если очередь пуста,
NULL
будет возвращен.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Сбрасывает очередь.
Объявление
Swift
func CMSimpleQueueReset(_
queue
: CMSimpleQueue!) -> OSStatusObjective C
OSStatus CMSimpleQueueReset ( CMSimpleQueueRef queue );
Параметры
queue
Очередь для сброса. Не должен быть
NULL
.Возвращаемое значение
Возвраты
noErr
если успешно выполняется вызов.Обсуждение
Эта функция сбрасывает очередь к своему пустому состоянию; все значения в очереди до сброса потеряны. Обратите внимание на то, что
CMSimpleQueueReset
не синхронизируется всегда, таким образом, поток читателя и поток писателя должны быть удержаны клиентом во время этой работы.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает число элементов, которое может быть сохранено в очереди.
Объявление
Swift
func CMSimpleQueueGetCapacity(_
queue
: CMSimpleQueue!) -> Int32Objective C
int32_t CMSimpleQueueGetCapacity ( CMSimpleQueueRef queue );
Параметры
queue
Опрашиваемая очередь. Не должен быть
NULL
.Возвращаемое значение
Число элементов, которое может быть сохранено в очереди. Возвраты 0, если существует ошибка.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
В настоящее время возвращает число элементов на очереди.
Объявление
Swift
func CMSimpleQueueGetCount(_
queue
: CMSimpleQueue!) -> Int32Objective C
int32_t CMSimpleQueueGetCount ( CMSimpleQueueRef queue );
Параметры
queue
Опрашиваемая очередь. Не должен быть
NULL
.Возвращаемое значение
Число элементов в настоящее время в очереди. Возвраты 0, если существует ошибка.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Макрос удобства, возвращающий GetCount/GetCapacity, вычисленный в плавающей точке.
Объявление
Objective C
#define CMSimpleQueueGetFullness(queue)
Возвращаемое значение
Возвраты 0.0, если очередь пуста
Возвраты 0.5, если очередь наполовину полна
Возвраты 1.0, если очередь полна.
Возвраты 0.0, если существует ошибка (например, если очередь
NULL
).
Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Ссылка на a
CMSimpleQueue
, Базовая Основа возражает, что реализует простую незапертую очередь (недействительный *) элементы.Объявление
Swift
typealias CMSimpleQueueRef = CMSimpleQueue
Objective C
typedef struct opaqueCMSimpleQueue *CMSimpleQueueRef;
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
Эта таблица приводит коды результата, определенные для CMSimpleQueue
APIs.
Код результата |
Значение |
Описание |
---|---|---|
noErr |
0 |
Никакая ошибка. |
kCMSimpleQueueError_AllocationFailed |
- 12770 |
Указывает отказавшее выделение. |
kCMSimpleQueueError_RequiredParameterMissing |
- 12771 |
Указывает a |
kCMSimpleQueueError_ParameterOutOfRange |
- 12772 |
Указывает, что значение из диапазона было передано для параметра с ограниченным допустимым диапазоном. |
kCMSimpleQueueError_QueueIsFull |
- 12773 |
Указывает работу, отказавшую, потому что очередь была полна. |