Core Foundation   >   CFAllocatorContext
構造体
CFAllocatorContext
アロケータ (CFAllocator) オブジェクトのコンテキストまたは動作環境を定義する構造体。すべての Core Foundation アロケータオブジェクトには、それを定義したコンテキストがなければなりません。
概観
カスタムの CFAllocator オブジェクトの作成、およびその手順の一部として、適切に初期化された CFAllocatorContext 構造体を作成する手順については、Core Foundation 用のメモリ管理プログラミングガイド のトピックスを参照してください。
シンボル
イニシャライザ
init()
init(version: CFIndex, info: UnsafeMutableRawPointer!, retain: CFAllocatorRetainCallBack!, release: CFAllocatorReleaseCallBack!, copyDescription: CFAllocatorCopyDescriptionCallBack!, allocate: CFAllocatorAllocateCallBack!, reallocate: CFAllocatorReallocateCallBack!, deallocate: CFAllocatorDeallocateCallBack!, preferredSize: CFAllocatorPreferredSizeCallBack!)
インスタンスプロパティー
var allocate: CFAllocatorAllocateCallBack!
要求されたサイズのメモリを割り当てる呼び出し関数のプロトタイプ。この関数を実装するには、少なくとも size バイトのメモリブロックを割り当て、ブロックの先頭にポインタを返します。hint 引数は、現在は使用してはいけないビットフィールドです (つまり、0 を代入します)。size パラメータは常に 0 より大きくなければなりません。そうでない場合、または割り当てに問題が発生した場合は NULL を返します。 この関数ポインタには NULL を割り当てることはできません。
var copyDescription: CFAllocatorCopyDescriptionCallBack!
info フィールドが指すデータの説明を提供する呼び出し関数のプロトタイプ。この関数を実装する際に、アロケータを記述する CFString オブジェクトへの参照、特にプログラム定義のデータのいくつかの特徴を返します。この関数ポインタは NULL に設定できます。その場合、Core Foundation は基本的な説明を提供します。
var deallocate: CFAllocatorDeallocateCallBack!
与えられたメモリブロックの割り当てを解除する呼び出し関数のプロトタイプ。この関数を実装するには、ptr が指し示すメモリブロックをアロケータにより引き続き再利用できるようにしますが、プログラムが引き続き使用することはできません。ptr パラメータは NULL にすることはできませんし、ptr パラメータが、アロケータによって以前に割り当てられたメモリブロックでない場合、結果は未定義です。異常なプログラムの終了が発生する可能性があります。この呼び出し関数を NULL に設定することができます。この場合、CFAllocatorDeallocate(_:_:) 関数は無効です。
var info: UnsafeMutableRawPointer!
プログラム定義データへの型のないポインタ。このデータのメモリを割り当て、そのデータにポインタを割り当てます。このデータは、多くの場合、アロケータの制御情報です。NULL を割り当てることができます。
var preferredSize: CFAllocatorPreferredSizeCallBack!
要求を満たすのに十分な空きメモリがあるかどうかを判断する呼び出し関数のプロトタイプ。この関数を実装する際には、size サイズのメモリブロックに対する要求があれば、アロケータが割り当てようとする実際のサイズを返します。hint 引数は、現在は使用してはいけないビットフィールドです。
var reallocate: CFAllocatorReallocateCallBack!
既存のメモリブロックに対して要求されたサイズのメモリを再割り当てする呼び出し関数のプロトタイプ。
var release: CFAllocatorReleaseCallBack!
info フィールドが指すデータを解放する呼び出し関数のプロトタイプ。この関数を実装するには、アロケータのコンテキスト用に定義したデータを解放 (または自由に) します。この関数ポインタを NULL に設定することもできますが、そうするとメモリリークが発生する可能性があります。
var retain: CFAllocatorRetainCallBack!
info フィールドが指すデータを保持する呼び出し関数のプロトタイプ。この関数を実装するには、アロケータコンテキスト用に定義したデータをこのフィールドに保持します。(これは、データが Core Foundation オブジェクトである場合にのみ意味をなします)。この関数ポインタを NULL に設定することができます。
var version: CFIndex
CFIndex 型の整数。アロケータのバージョン番号を割り当てます。現時点で唯一有効な値は 0 です。