Annotation Interface Allocator


@Documented @Retention(RUNTIME) @Target({TYPE,METHOD}) public @interface Allocator
An annotation indicating that a method should behave like an allocator. However, methods with signature native void allocate(...) are recognized as allocators even without annotation. This behavior can be changed by annotating the method with the Function annotation. An allocator must have no return values, but can have parameters corresponding to the ones found on the native C++ constructors.

In a nutshell, an allocator uses the C++ new operator along with all the given arguments, and initializes the Pointer.address as well as the Pointer.deallocator with NativeDeallocator, based on the delete operator, if not additionally annotated with NoDeallocator.

Can also be used on classes to set the max() value for enclosed function pointers.

See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    The maximum number of instances that can be allocated in the case of a FunctionPointer subclass.
  • Element Details

    • max

      int max
      The maximum number of instances that can be allocated in the case of a FunctionPointer subclass. Does not affect the underlying function object or other Pointer which have no such allocation limits.
      Default:
      10