FunctionDescriptor — 함수 기술자
FunctionDescriptor — 함수 기술자
FunctionDescriptor는 외부 함수(foreign function)의 시그니처를 모델링합니다. 함수 기술자는 0개 이상의 인자 레이아웃(argument layout)과 0개 또는 1개의 반환 레이아웃(return layout)으로 구성됩니다. 함수 기술자는 다운콜 메서드 핸들(downcall method handle)과 업콜 스텁(upcall stub)을 만드는 데 사용됩니다.
본문
public sealed interface FunctionDescriptor
팩토리 메서드
static FunctionDescriptor of(MemoryLayout resLayout, MemoryLayout... argLayouts)
static FunctionDescriptor ofVoid(MemoryLayout... argLayouts)
of는 반환 레이아웃과 인자 레이아웃을 지정해 생성합니다.ofVoid는 반환값이 없는(void) 함수에 대한 기술자를 생성합니다.
주요 메서드
Optional<MemoryLayout> returnLayout()
List<MemoryLayout> argumentLayouts()
FunctionDescriptor appendArgumentLayouts(MemoryLayout... addedLayouts)
FunctionDescriptor insertArgumentLayouts(int index, MemoryLayout... addedLayouts)
FunctionDescriptor changeReturnLayout(MemoryLayout newReturn)
FunctionDescriptor dropReturnLayout()
MethodType toMethodType()
returnLayout()은 반환 레이아웃을,argumentLayouts()는 인자 레이아웃 목록을 반환합니다.append*,insert*,change*,drop*계열 메서드는 인자·반환 레이아웃을 조정한 새 기술자를 만듭니다.toMethodType()은 이 함수 기술자를 Java의MethodType으로 변환합니다.