Ссылка 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() -> CFTypeIDObjective 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 = CMSimpleQueueObjective 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 |
Указывает работу, отказавшую, потому что очередь была полна. |
