DRTrackDataProduction
Неофициальный протокол, описывающий методы, реализован производителем данных дорожки.
Неофициальный протокол DRTrackDataProduction определяет те методы, которые может реализовать экземпляр производителя данных дорожки. Производитель данных дорожки является объектом, который является resposible для того, чтобы предоставить данные дорожки механизму записи по запросу.
В понятии производитель данных дорожки, подобный источнику данных NSTable в Какао. Каждый метод производителя получает указатель на дорожку, для которой он должен произвести данные. Существует один метод, который должен быть реализован - produceDataForTrack:intoBuffer:length:atAddress:blockSize:ioFlags:.
Методы этого протокола будут призваны примерно этот порядок:
prepareTrackForBurn:
producePreGapForTrack:intoBuffer:length:atAddress:blockSize:ioFlags:
produceDataForTrack:intoBuffer:length:atAddress:blockSize:ioFlags:
verifyDataForTrack:inBuffer:length:atAddress:blockSize:ioFlags:
Если проверку диска не требуют, или дорожка опускает или определяет DRVerificationTypeKey, чтобы быть DRVerificationTypeNone, то prepareTrackForVerification: verifyDataForTrack:inBuffer:length:atAddress:blockSize:ioFlags: и cleanupTrackAfterVerification: не будет вызван.
Во время записи, produceDataForTrack:intoBuffer:length:atAddress:blockSize:ioFlags: вызывается очень часто в потоке в реальном времени. Из-за этого это имеет наибольшее значение, что этот очень эффективный метод и не выполняет длинной задачи, так как путем выполнения так, запись может перестать работать, потому что данные не доступны для записи в диск.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import DiscRecording
Objective C
@import DiscRecording;
Доступность
Доступный в OS X v10.2 и позже.
-
Очищает дорожку после того, как завершится запись. (требуемый)
Объявление
Swift
func cleanupTrackAfterBurn(_
track
: DRTrack!)Objective C
- (void)cleanupTrackAfterBurn:(DRTrack *)
track
Параметры
track
Записываемый отслеживаемый объект
Возвращаемое значение
YES, чтобы указать, что запись должна продолжиться и НЕ указать отказ, произошел.
Обсуждение
Вызванный после того, как запись завершена. Обычно Вы очистите то, что было установкой в prepareTrackForBurn. Так как этот метод вызывают после того, как лазер выключен, и запись закончена, этот метод может выполнить трудоемкие задачи.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
Очищает дорожку после того, как завершится проверка. (требуемый)
Объявление
Swift
func cleanupTrackAfterVerification(_
track
: DRTrack!) -> BoolObjective C
- (BOOL)cleanupTrackAfterVerification:(DRTrack *)
track
Параметры
track
Записываемый отслеживаемый объект
Возвращаемое значение
Возвратите YES, чтобы указать успех, НЕТ указать отказ.
Обсуждение
Как только фаза проверки завершена, этот метод вызывают. Класс, реализовывая метод имеет возможность сделать что-либо до и включая сбой проверки.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
Оценивает, что записывается размер дорожки. (требуемый)
Объявление
Swift
func estimateLengthOfTrack(_
track
: DRTrack!) -> UInt64Objective C
- (uint64_t)estimateLengthOfTrack:(DRTrack *)
track
Параметры
track
Отслеживаемый объект, для которого можно оценить размер
Возвращаемое значение
Число блоков данных, которые займет дорожка. Оценка должна быть довольно точной, и не меньшей, чем фактический размер, который будет необходим.
Обсуждение
Это сообщение отправляется за пределами цикла записи в ответ на сообщение-estimateLength, отправленное в дорожку.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.3 и позже.
-
Подготавливает дорожку к записи. (требуемый)
Объявление
Swift
func prepareTrack(_
track
: DRTrack!, forBurnburn
: DRBurn!, toMediamediaInfo
: [NSObject : AnyObject]!) -> BoolObjective C
- (BOOL)prepareTrack:(DRTrack *)
track
forBurn:(DRBurn *)burn
toMedia:(NSDictionary *)mediaInfo
Параметры
track
Записываемый отслеживаемый объект
burn
Объект записи управление записью
mediaInfo
Носители, записываемые к. Это - тот же словарь, как возвращено - [Состояние DRDevice].
Возвращаемое значение
YES, чтобы указать, что запись должна продолжиться и НЕ указать отказ, произошел.
Обсуждение
Вызванный, прежде чем любая запись запускается. Сделайте любой вид установки, которая должна быть выполнена (такие как вводные файлы). Этот метод может вычислить и обновить точную длину дорожки, которая будет записана.
Так как этот метод вызывают, прежде чем лазер включен, этот метод может выполнить трудоемкие задачи.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
Подготовьте дорожку, которая будет проверена. (требуемый)
Объявление
Swift
func prepareTrackForVerification(_
track
: DRTrack!) -> BoolObjective C
- (BOOL)prepareTrackForVerification:(DRTrack *)
track
Параметры
track
Записываемый отслеживаемый объект
Возвращаемое значение
YES, чтобы указать, что проверка должна продолжиться и НЕ указать отказ, произошел.
Обсуждение
Этот метод вызывают после записи complets запись данных к диску и перед началами фазы проверки. Теперь было бы хорошее время, чтобы подготовить производить данные снова путем перемотки к запуску файлов, и т.д.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
produceDataForTrack (_: intoBuffer:length:atAddress:blockSize:ioFlags:) - produceDataForTrack:intoBuffer:length:atAddress:blockSize:ioFlags:
ТребуемыйПроизводит данные дорожки. (требуемый)
Объявление
Swift
func produceDataForTrack(_
track
: DRTrack!, intoBufferbuffer
: UnsafeMutablePointer<Int8>, lengthbufferLength
: UInt32, atAddressaddress
: UInt64, blockSizeblockSize
: UInt32, ioFlagsflags
: UnsafeMutablePointer<UInt32>) -> UInt32Objective C
- (uint32_t)produceDataForTrack:(DRTrack *)
track
intoBuffer:(char *)buffer
length:(uint32_t)bufferLength
atAddress:(uint64_t)address
blockSize:(uint32_t)blockSize
ioFlags:(uint32_t *)flags
Параметры
track
Записываемый отслеживаемый объект
buffer
Буфер для размещения данных в
bufferLength
Длина буфера
address
Адрес на диске того, где будут записаны данные
blockSize
размер каждого блока на диске. Лучше возвращать кратное число этого размера.
flags
флаги
Возвращаемое значение
Число байтов производится.
Обсуждение
Этот метод вызывают много раз в течение записи для получения данных для дорожки. Буфер передал в, будет кратное число blockSize (bufferLength == blockSize * N, где N> 1) и должен быть заполнен максимально полный данных. адрес является адресом сектора на диске от запуска дорожки, которая является буфером, будет записан в.
С тех пор при записи, хранении буфера диска полным имеет наибольшее значение, Вы не должны выполнять длинные операции или блок для данных в этом методе. Этот метод должен возвратить число байтов фактически в буфере или 0, чтобы указать, что была ошибка при создании данных..
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
producePreGapForTrack (_: intoBuffer:length:atAddress:blockSize:ioFlags:) - producePreGapForTrack:intoBuffer:length:atAddress:blockSize:ioFlags:
ТребуемыйПроизводит данные перед разрывом. (требуемый)
Объявление
Swift
func producePreGapForTrack(_
track
: DRTrack!, intoBufferbuffer
: UnsafeMutablePointer<Int8>, lengthbufferLength
: UInt32, atAddressaddress
: UInt64, blockSizeblockSize
: UInt32, ioFlagsflags
: UnsafeMutablePointer<UInt32>) -> UInt32Objective C
- (uint32_t)producePreGapForTrack:(DRTrack *)
track
intoBuffer:(char *)buffer
length:(uint32_t)bufferLength
atAddress:(uint64_t)address
blockSize:(uint32_t)blockSize
ioFlags:(uint32_t *)flags
Параметры
track
Записываемый отслеживаемый объект
buffer
Буфер для размещения данных в
bufferLength
Длина буфера
address
Адрес на диске того, где будут записаны данные
blockSize
размер каждого блока на диске. Лучше возвращать кратное число этого размера.
flags
флаги
Возвращаемое значение
Число байтов производится.
Обсуждение
Этот метод вызывают для получения данных для предварительного разрыва дорожки. Если ключ DRPreGapLengthKey будет присутствовать в свойствах дорожки, то производителя дорожки попросят данных перед разрывом сначала. Если производитель реализует этот селектор, то это - ответственность производителя предоставить данные для предварительного разрыва, иначе та продолжительность тишины будет произведена DiscRecording.
Буфер передал в, будет кратное число blockSize (bufferLength == blockSize * N, где N> 1) и должен быть заполнен максимально полный данных. адрес является адресом сектора на диске от запуска дорожки, которая является буфером, будет записан в.
С тех пор при записи, хранении буфера диска полным имеет наибольшее значение, Вы не должны выполнять длинные операции или блок для данных в этом методе. Этот метод должен возвратить число байтов фактически в буфере или 0, чтобы указать, что была ошибка при создании данных..
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.3 и позже.
-
verifyDataForTrack (_: inBuffer:length:atAddress:blockSize:ioFlags:) - verifyDataForTrack:inBuffer:length:atAddress:blockSize:ioFlags:
ТребуемыйОчищает дорожку после того, как завершится запись. (требуемый)
Объявление
Swift
func verifyDataForTrack(_
track
: DRTrack!, inBufferbuffer
: UnsafePointer<Int8>, lengthbufferLength
: UInt32, atAddressaddress
: UInt64, blockSizeblockSize
: UInt32, ioFlagsflags
: UnsafeMutablePointer<UInt32>) -> BoolObjective C
- (BOOL)verifyDataForTrack:(DRTrack *)
track
inBuffer:(const char *)buffer
length:(uint32_t)bufferLength
atAddress:(uint64_t)address
blockSize:(uint32_t)blockSize
ioFlags:(uint32_t *)flags
Параметры
track
Записываемый отслеживаемый объект
buffer
Чтение данных в от дорожки для сравнения
bufferLength
Длина буфера
address
Адрес на диске того, где желание данных было считано из.
blockSize
размер каждого блока на диске. Лучше возвращать кратное число этого размера.
flags
флаги
Возвращаемое значение
YES, чтобы указать, что произошли данные, сравненные успешно и НЕ указать отказ.
Обсуждение
Если класс, реализовывая этот метод попросит тип проверки DRVerificationTypeReceiveData, то серия вызовов к этому методу запустится. Это до класса для репродуцирования данных снова, и выдерживать сравнение это с данными передало в буфере. Буфер передал в, будет кратное число blockSize (bufferLength == blockSize * N, где N> 1). адрес является адресом сектора на диске от запуска дорожки, которая является буфером, был записан в.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.2 и позже.
-
verifyPreGapForTrack (_: inBuffer:length:atAddress:blockSize:ioFlags:) - verifyPreGapForTrack:inBuffer:length:atAddress:blockSize:ioFlags:
ТребуемыйПроверяет предварительный разрыв дорожки целостности после записи. (требуемый)
Объявление
Swift
func verifyPreGapForTrack(_
track
: DRTrack!, inBufferbuffer
: UnsafePointer<Int8>, lengthbufferLength
: UInt32, atAddressaddress
: UInt64, blockSizeblockSize
: UInt32, ioFlagsflags
: UnsafeMutablePointer<UInt32>) -> BoolObjective C
- (BOOL)verifyPreGapForTrack:(DRTrack *)
track
inBuffer:(const char *)buffer
length:(uint32_t)bufferLength
atAddress:(uint64_t)address
blockSize:(uint32_t)blockSize
ioFlags:(uint32_t *)flags
Параметры
track
Записываемый отслеживаемый объект
buffer
Чтение данных в от дорожки для сравнения
bufferLength
Длина буфера
address
Адрес на диске того, где желание данных было считано из.
blockSize
размер каждого блока на диске. Лучше возвращать кратное число этого размера.
flags
флаги
Возвращаемое значение
YES, чтобы указать, что произошли данные, сравненные успешно и НЕ указать отказ.
Обсуждение
Если класс, реализовывая этот метод попросит тип проверки DRVerificationTypeReceiveData, то серия вызовов к этому методу запустится. Это до класса для репродуцирования предварительного разрыва снова, и выдерживать сравнение это с данными передало в буфере. Буфер передал в, будет кратное число blockSize (bufferLength == blockSize * N, где N> 1). адрес является адресом сектора на диске от запуска дорожки, которая является буфером, был записан в.
Оператор импорта
Objective C
@import DiscRecording;
Swift
import DiscRecording
Доступность
Доступный в OS X v10.4 и позже.