Spec-Zone.ru › Dart 2

dart:ffi

Класс Allocator

Управляет памятью в нативном куче.

При выделении памяти предпочтительно вызывать этот аллокатор непосредственно как функцию (см. AllocatorAlloc.call для подробностей).

Этот интерфейс предоставляет только метод allocate для выделения блока байтов и метод free для освобождения такого блока. Реализации должны предоставлять только эти два метода. Метод расширения AllocatorAlloc.call определяется в терминах этих операций более низкого уровня.

Пример аллокатора, который обертывает другой, чтобы подсчитать количество выделений:

class CountingAllocator implements Allocator {
  final Allocator _wrappedAllocator;
  int _totalAllocations = 0;
  int _nonFreedAllocations = 0;

  CountingAllocator([Allocator? allocator])
      : _wrappedAllocator = allocator ?? calloc;

  int get totalAllocations => _totalAllocations;

  int get nonFreedAllocations => _nonFreedAllocations;

  @override
  Pointer<T> allocate<T extends NativeType>(int byteCount, {int? alignment}) {
    final result =
        _wrappedAllocator.allocate<T>(byteCount, alignment: alignment);
    _totalAllocations++;
    _nonFreedAllocations++;
    return result;
  }

  @override
  void free(Pointer<NativeType> pointer) {
    _wrappedAllocator.free(pointer);
    _nonFreedAllocations--;
  }
}
Доступные расширения
  • AllocatorAlloc
Аннотации
  • @Since('2.12')

Свойства

hashCode → int
только для чтения, унаследованное
Код хэша для этого объекта.
runtimeType → Type
только для чтения, унаследованное
Представление runtime типа объекта.

Методы

allocate<T extends NativeType>(int byteCount, {int? alignment}) → Pointer<T>
Выделяет byteCount байта памяти в нативной куче.
free(Pointer<NativeType> pointer) → void
Освобождает выделенную память в нативной куче.
noSuchMethod(Invocation invocation) → dynamic
унаследованное
Вызывается при обращении к несуществующему методу или свойству.
toString() → String
унаследованное
Строковое представление этого объекта.

Операторы

operator ==(Object other) → bool
унаследованное
Оператор равенства.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-ffi/Allocator-class.html

Spec-Zone.ru

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