
NIOOnly       arrayTestFooNioOnly
NIOOnly       bufferTestNioOnly
NIODirectOnly bufferTestNioDirectOnly
NIOOnly       mixedTestNioOnly
NIOOnly       doubleTestNioOnly

ReturnsString intToStr
ArgumentIsString strToInt 0
ArgumentIsString stringArrayRead 0

ReturnValueCapacity createAPtrBlob 1 * sizeof(void *)
ReturnValueCapacity getAPtrMemory 1 * sizeof(void *)
ReturnValueCapacity arrayTestAVoidPtrTypeDim0 1 * sizeof(void *)
ReturnValueCapacity arrayTestAVoidPtrTypeDim1Immutable 1 * sizeof(void *)
ReturnValueCapacity arrayTestAPtr1TypeDim0 1 * sizeof(APtr1Type)
ReturnValueCapacity arrayTestAPtr1TypeDim1Immutable 1 * sizeof(APtr1Type)

ReturnValueCapacity arrayTestFoo2 ARRAY_SIZE * sizeof(foo)
ReturnValueCapacity arrayTestFoo3ArrayToPtrPtr ARRAY_SIZE * sizeof(foo *)
ReturnValueCapacity arrayTestFoo3PtrPtr ARRAY_SIZE * sizeof(foo *)
ReturnValueCapacity typeTestAnonPointer ARRAY_SIZE * sizeof(MYAPIConfig)

#
# This allows a single element of MYAPIConfig,
# an anonymous struct pointer, to be treated as a long value.
# Arrays of such type (pointer pointer) are still
# treated through a PointerBuffer to achieve architecture
# coherence (32bit/64bit pointer);
#
# typedef struct __MYAPIConfig * MYAPIConfig;
Opaque long MYAPIConfig
Opaque boolean Bool

CustomCCode #include "test1.h"

Opaque long TK_Context

StructPackage TK_Dimension com.jogamp.gluegen.test.junit.generation
EmitStruct TK_Dimension
StructPackage TK_DimensionPair com.jogamp.gluegen.test.junit.generation
EmitStruct TK_DimensionPair

EmitStruct TK_Surface
StructPackage TK_Surface com.jogamp.gluegen.test.junit.generation
EmitStruct TK_Surface
ReturnedArrayLength TK_Surface.clips getClipSize()

# Implements TK_Surface TḴ_???

StructPackage TK_ComplicatedSuperSet com.jogamp.gluegen.test.junit.generation
EmitStruct TK_ComplicatedSuperSet
# Implements TK_ComplicatedSuperSet TḴ_???

ReturnValueCapacity createSurface sizeof(TK_Surface)
ReturnValueCapacity TK_Surface.getClip sizeof(TK_Dimension)

ReturnValueCapacity createComplicatedSuperSet sizeof(TK_ComplicatedSuperSet)

EmitStruct TK_ModelConst
StructPackage TK_ModelConst com.jogamp.gluegen.test.junit.generation
ReturnedArrayLength TK_ModelConst.intxxArrayCustomLen getIntxxArrayCustomLenVal()
ReturnedArrayLength TK_ModelConst.intxxPointerCustomLen getIntxxPointerCustomLenVal()
ReturnedArrayLength TK_ModelConst.int32ArrayCustomLen getInt32ArrayCustomLenVal()
ReturnedArrayLength TK_ModelConst.int32PointerCustomLen getInt32PointerCustomLenVal()
ReturnedArrayLength TK_ModelConst.structArrayCustomLen getStructArrayCustomLenVal()
ReturnedArrayLength TK_ModelConst.structPointerCustomLen getStructPointerCustomLenVal()
ReturnedArrayLength TK_ModelConst.int32PointerOneElem 1
ReturnValueCapacity TK_ModelConst.int32PointerOneElem 1 * sizeof(int32_t) /* overridden by ReturnValueCapacity */
ReturnedArrayLength TK_ModelConst.structPointerOneElem 1
ReturnsString TK_ModelConst.modelNameArrayFixedLen
ReturnsString TK_ModelConst.modelNamePointerCString
ReturnsString TK_ModelConst.modelNamePointerCustomLen
ReturnedArrayLength TK_ModelConst.modelNamePointerCustomLen getModelNamePointerCustomLenVal()

EmitStruct TK_ModelMutable
StructPackage TK_ModelMutable com.jogamp.gluegen.test.junit.generation
ReturnedArrayLength TK_ModelMutable.intxxArrayCustomLen getIntxxArrayCustomLenVal()
ReturnedArrayLength TK_ModelMutable.intxxPointerCustomLen getIntxxPointerCustomLenVal()
ReturnedArrayLength TK_ModelMutable.int32ArrayCustomLen getInt32ArrayCustomLenVal()
ReturnedArrayLength TK_ModelMutable.int32PointerCustomLen getInt32PointerCustomLenVal()
ReturnedArrayLength TK_ModelMutable.structArrayCustomLen getStructArrayCustomLenVal()
ReturnedArrayLength TK_ModelMutable.structPointerCustomLen getStructPointerCustomLenVal()
ReturnedArrayLength TK_ModelMutable.int32PointerOneElem 1
ReturnedArrayLength TK_ModelMutable.structPointerOneElem 1
ReturnsString TK_ModelMutable.modelNameArrayFixedLen
ReturnsString TK_ModelMutable.modelNamePointerCString
ReturnsString TK_ModelMutable.modelNamePointerCustomLen
ReturnedArrayLength TK_ModelMutable.modelNamePointerCustomLen getModelNamePointerCustomLenVal()

ReturnValueCapacity createModelConst sizeof(TK_ModelConst)
ReturnValueCapacity createModelMutable sizeof(TK_ModelMutable)

# Imports needed by all glue code
Import java.nio.*
Import java.util.*
Import com.jogamp.common.os.*
Import com.jogamp.common.nio.*
Import com.jogamp.gluegen.test.junit.generation.TK_Surface
Import com.jogamp.gluegen.test.junit.generation.TK_Dimension
Import com.jogamp.gluegen.test.junit.generation.TK_DimensionPair
Import com.jogamp.gluegen.test.junit.generation.TK_Engine
Import com.jogamp.gluegen.test.junit.generation.TK_ComplicatedSuperSet
Import com.jogamp.gluegen.test.junit.generation.TK_ComplicatedSubSet
Import com.jogamp.gluegen.test.junit.generation.TK_ModelConst
Import com.jogamp.gluegen.test.junit.generation.TK_ModelMutable



