Package Summary  Overview Summary

class:FunctionDescriptor [NONE]


public sealed class FunctionDescriptorextends Object
FunctionDescriptor is a preview API of the Java platform.
Programs can only use FunctionDescriptor when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A function descriptor is made up of zero or more argument layouts and zero or one return layout. A function descriptor is used to model the signature of foreign functions when creating downcall method handles PREVIEW or upcall stubs PREVIEW.
Since:
19
See Also:
Implementation Requirements:
This class is immutable, thread-safe and value-based.

method:returnLayout() [NONE]

  • returnLayout

    public Optional<MemoryLayoutPREVIEW> returnLayout()
    Returns the return layout (if any) associated with this function descriptor.
    Returns:
    the return layout (if any) associated with this function descriptor
  • method:argumentLayouts() [NONE]

    argumentLayouts

    public List<MemoryLayoutPREVIEW> argumentLayouts()
    Returns the argument layouts associated with this function descriptor (as an immutable list)..
    Returns:
    the argument layouts associated with this function descriptor (as an immutable list)

    method:of(java.lang.foreign.MemoryLayout,java.lang.foreign.MemoryLayout...) [NONE]

    of

    public static  FunctionDescriptorPREVIEW of (MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts)
    Creates a function descriptor with the given return and argument layouts.
    Parameters:
    resLayout - the return layout.
    argLayouts - the argument layouts.
    Returns:
    the new function descriptor.

    method:ofVoid(java.lang.foreign.MemoryLayout...) [NONE]

    ofVoid

    public static  FunctionDescriptorPREVIEW ofVoid (MemoryLayoutPREVIEW... argLayouts)
    Creates a function descriptor with the given argument layouts and no return layout.
    Parameters:
    argLayouts - the argument layouts.
    Returns:
    the new function descriptor.

    method:asVariadic(java.lang.foreign.MemoryLayout...) [NONE]

    asVariadic

    public FunctionDescriptorPREVIEW asVariadic (MemoryLayoutPREVIEW... variadicLayouts)
    Creates a specialized variadic function descriptor, by appending given variadic layouts to this function descriptor argument layouts. The resulting function descriptor can report the position of the first variadic argument , and cannot be altered in any way: for instance, calling changeReturnLayout(MemoryLayout) on the resulting descriptor will throw an UnsupportedOperationException.
    Parameters:
    variadicLayouts - the variadic argument layouts to be appended to this descriptor argument layouts.
    Returns:
    a variadic function descriptor, or this descriptor if variadicLayouts.length == 0 .

    method:firstVariadicArgumentIndex() [NONE]

    firstVariadicArgumentIndex

    public int firstVariadicArgumentIndex()
    The index of the first variadic argument layout (where defined).
    Returns:
    The index of the first variadic argument layout, or -1 if this is not a variadic layout.

    method:appendArgumentLayouts(java.lang.foreign.MemoryLayout...) [NONE]

    appendArgumentLayouts

    public FunctionDescriptorPREVIEW appendArgumentLayouts (MemoryLayoutPREVIEW... addedLayouts)
    Returns a function descriptor with the given argument layouts appended to the argument layout array of this function descriptor.
    Parameters:
    addedLayouts - the argument layouts to append.
    Returns:
    the new function descriptor.

    method:insertArgumentLayouts(int,java.lang.foreign.MemoryLayout...) [NONE]

    insertArgumentLayouts

    public FunctionDescriptorPREVIEW insertArgumentLayouts (int index, MemoryLayoutPREVIEW... addedLayouts)
    Returns a function descriptor with the given argument layouts inserted at the given index, into the argument layout array of this function descriptor.
    Parameters:
    index - the index at which to insert the arguments
    addedLayouts - the argument layouts to insert at given index.
    Returns:
    the new function descriptor.
    Throws:
    IllegalArgumentException - if index < 0 || index > argumentLayouts().size() .

    method:changeReturnLayout(java.lang.foreign.MemoryLayout) [NONE]

    changeReturnLayout

    public FunctionDescriptorPREVIEW changeReturnLayout (MemoryLayoutPREVIEW newReturn)
    Returns a function descriptor with the given memory layout as the new return layout.
    Parameters:
    newReturn - the new return layout.
    Returns:
    the new function descriptor.

    method:dropReturnLayout() [NONE]

    dropReturnLayout

    public FunctionDescriptorPREVIEW dropReturnLayout()
    Returns a function descriptor with the return layout dropped. This is useful to model functions which return no values.
    Returns:
    the new function descriptor.

    method:toString() [NONE]

    toString

    public String toString()
    Returns the string representation of this function descriptor.
    Overrides:
    toString in class Object
    Returns:
    the string representation of this function descriptor

    method:equals(java.lang.Object) [NONE]

    equals

    public boolean equals (Object other)
    Compares the specified object with this function descriptor for equality. Returns true if and only if the specified object is also a function descriptor, and all the following conditions are met:
    Overrides:
    equals in class Object
    Parameters:
    other - the object to be compared for equality with this function descriptor.
    Returns:
    true if the specified object is equal to this function descriptor.
    See Also:

    method:hashCode() [NONE]

    hashCode

    public int hashCode()
    Returns the hash code value for this function descriptor.
    Overrides:
    hashCode in class Object
    Returns:
    the hash code value for this function descriptor
    See Also: