GlueGen v2.6.0-rc-20250712
GlueGen, Native Binding Generator for Java™ (public API).
com.jogamp.gluegen.cgram.types.ArrayType Class Reference

Represents an array type. More...

Inheritance diagram for com.jogamp.gluegen.cgram.types.ArrayType:
Collaboration diagram for com.jogamp.gluegen.cgram.types.ArrayType:

Public Member Functions

 ArrayType (final Type elementType, final SizeThunk sizeInBytes, final int length, final int cvAttributes)
 
 ArrayType (final Type elementType, final SizeThunk sizeInBytes, final int length, final int cvAttributes, final ASTLocusTag astLocus)
 
boolean isAnon ()
 
String getName (final boolean includeCVAttrs)
 Returns the name of this type, optionally including const/volatile attributes. More...
 
final ArrayType asArray ()
 Casts this to an ArrayType or returns null if not an ArrayType. More...
 
final Type getTargetType ()
 Helper method to returns the target type of this type, in case another type is being referenced, i.e. More...
 
int getLength ()
 
boolean hasLength ()
 
final Type getBaseType ()
 Helper method to returns the bottom-most element type of this type, i.e. More...
 
Type getArrayBaseOrPointerTargetType ()
 Return getBaseType() if isArray() or returns getTargetType() otherwise. More...
 
final int arrayDimension ()
 Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2). More...
 
String toString ()
 Returns a string representation of this type. More...
 
String toString (final String variableName)
 
void visit (final TypeVisitor arg)
 Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType. More...
 
- Public Member Functions inherited from com.jogamp.gluegen.cgram.types.MemoryLayoutType
boolean isLayouted ()
 
void setLayouted ()
 
- Public Member Functions inherited from com.jogamp.gluegen.cgram.types.Type
final Type newCVVariant (final int cvAttributes)
 Return a variant of this type matching the given const/volatile attributes. More...
 
Type clone (final ASTLocusTag newLoc)
 Clones this instance using a new ASTLocusTag. More...
 
final ASTLocusTag getASTLocusTag ()
 Returns this instance's ASTLocusTag, if available, otherwise returns null. More...
 
boolean isAnon ()
 
final String getCName ()
 Returns the name of this type. More...
 
String getCName (final boolean includeCVAttrs)
 Returns the name of this type, optionally including const/volatile attributes. More...
 
final String getName ()
 Returns the name of this type. More...
 
String getName (final boolean includeCVAttrs)
 Returns the name of this type, optionally including const/volatile attributes. More...
 
String toString ()
 Returns a string representation of this type. More...
 
final StringBuilder getSignature (StringBuilder sb)
 
final String getDebugString ()
 
boolean setTypedefName (final String name)
 Set the typedef name of this type and renders this type a typedef, if given name has a length. More...
 
final boolean isTypedef ()
 Indicates whether this type is a typedef type, i.e. More...
 
final boolean hasSize ()
 Returns true if getSize() is not null, otherwise false. More...
 
final SizeThunk getSize ()
 SizeThunk which computes size of this type in bytes. More...
 
final long getSize (final MachineDataInfo machDesc)
 Size of this type in bytes according to the given MachineDataInfo. More...
 
BitType asBit ()
 Casts this to a BitType or returns null if not a BitType. More...
 
IntType asInt ()
 Casts this to an IntType or returns null if not an IntType. More...
 
EnumType asEnum ()
 Casts this to an EnumType or returns null if not an EnumType. More...
 
FloatType asFloat ()
 Casts this to a FloatType or returns null if not a FloatType. More...
 
DoubleType asDouble ()
 Casts this to a DoubleType or returns null if not a DoubleType. More...
 
PointerType asPointer ()
 Casts this to a PointerType or returns null if not a PointerType. More...
 
ArrayType asArray ()
 Casts this to an ArrayType or returns null if not an ArrayType. More...
 
CompoundType asCompound ()
 Casts this to a CompoundType or returns null if not a CompoundType. More...
 
FunctionType asFunction ()
 Casts this to a FunctionType or returns null if not a FunctionType. More...
 
VoidType asVoid ()
 Casts this to a VoidType or returns null if not a VoidType. More...
 
final boolean isBit ()
 Indicates whether this is a BitType. More...
 
final boolean isInt ()
 Indicates whether this is an IntType. More...
 
final boolean isEnum ()
 Indicates whether this is an EnumType. More...
 
final boolean isFloat ()
 Indicates whether this is a FloatType. More...
 
final boolean isDouble ()
 Indicates whether this is a DoubleType. More...
 
final boolean isPointer ()
 Indicates whether this is a PointerType. More...
 
final boolean isArray ()
 Indicates whether this is an ArrayType. More...
 
final boolean isCompound ()
 Indicates whether this is a CompoundType. More...
 
final boolean isFunction ()
 Indicates whether this is a FunctionType. More...
 
final boolean isVoid ()
 Indicates whether this is a VoidType. More...
 
final boolean isVolatile ()
 Indicates whether this type is volatile. More...
 
final boolean isConst ()
 Indicates whether this type is const. More...
 
boolean isPrimitive ()
 Indicates whether this type is a primitive type. More...
 
boolean isFunctionPointer ()
 Convenience routine indicating whether this Type is a pointer to a function. More...
 
final boolean isBaseTypeConst ()
 Checks the base type of pointer-to-pointer, pointer, array or plain for const-ness. More...
 
final int hashCode ()
 Hashcode for Types. More...
 
final boolean equals (final Object arg)
 Equality test for Types inclusive its given name. More...
 
final int hashCodeSemantics ()
 Semantic hashcode for Types exclusive its given name. More...
 
final boolean equalSemantics (final SemanticEqualityOp arg)
 Semantic equality test for Types exclusive its given name. More...
 
void visit (final TypeVisitor visitor)
 Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType. More...
 
final int getCVAttributes ()
 
final String getCVAttributesString ()
 Returns a string indicating the const/volatile attributes of this type. More...
 
int pointerDepth ()
 Helper method for determining how many pointer indirections this type represents (i.e., "void **" returns 2). More...
 
int arrayDimension ()
 Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2). More...
 
Type getBaseType ()
 Helper method to returns the bottom-most element type of this type, i.e. More...
 
Type getTargetType ()
 Helper method to returns the target type of this type, in case another type is being referenced, i.e. More...
 
Type getArrayBaseOrPointerTargetType ()
 Return getBaseType() if isArray() or returns getTargetType() otherwise. More...
 
FunctionType getTargetFunction ()
 Returns the target FunctionType if this type is isFunctionPointer(). More...
 
int hashCodeSemantics ()
 Semantic hashcode for Types exclusive its given name. More...
 
boolean equalSemantics (final SemanticEqualityOp arg)
 Semantic equality test for Types exclusive its given name. More...
 
ASTLocusTag getASTLocusTag ()
 Returns this instance's ASTLocusTag, if available, otherwise returns null. More...
 

Protected Member Functions

int hashCodeImpl ()
 
boolean equalsImpl (final Type arg)
 
int hashCodeSemanticsImpl ()
 
boolean equalSemanticsImpl (final Type arg)
 
- Protected Member Functions inherited from com.jogamp.gluegen.cgram.types.MemoryLayoutType
 MemoryLayoutType (final String name, final SizeThunk size, final int cvAttributes, final ASTLocusTag astLocus)
 
- Protected Member Functions inherited from com.jogamp.gluegen.cgram.types.Type
 Type (final String name, final SizeThunk size, final int cvAttributes, final ASTLocusTag astLocus)
 
final void clearCache ()
 
abstract int hashCodeImpl ()
 
abstract boolean equalsImpl (final Type t)
 
abstract int hashCodeSemanticsImpl ()
 
abstract boolean equalSemanticsImpl (final Type t)
 

Additional Inherited Members

- Public Attributes inherited from com.jogamp.gluegen.cgram.types.Type
final boolean relaxedEqSem
 

Detailed Description

Represents an array type.

This differs from a pointer type in C syntax by the use of "[]" rather than "*". The length may or may not be known; if the length is unknown then a negative number should be passed in to the constructor.

Definition at line 50 of file ArrayType.java.

Constructor & Destructor Documentation

◆ ArrayType() [1/2]

com.jogamp.gluegen.cgram.types.ArrayType.ArrayType ( final Type  elementType,
final SizeThunk  sizeInBytes,
final int  length,
final int  cvAttributes 
)

Definition at line 54 of file ArrayType.java.

Here is the caller graph for this function:

◆ ArrayType() [2/2]

com.jogamp.gluegen.cgram.types.ArrayType.ArrayType ( final Type  elementType,
final SizeThunk  sizeInBytes,
final int  length,
final int  cvAttributes,
final ASTLocusTag  astLocus 
)

Definition at line 58 of file ArrayType.java.

Here is the call graph for this function:

Member Function Documentation

◆ arrayDimension()

final int com.jogamp.gluegen.cgram.types.ArrayType.arrayDimension ( )

Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2).

Returns 0 if this type is not an array type.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 134 of file ArrayType.java.

Here is the call graph for this function:

◆ asArray()

final ArrayType com.jogamp.gluegen.cgram.types.ArrayType.asArray ( )

Casts this to an ArrayType or returns null if not an ArrayType.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 112 of file ArrayType.java.

◆ equalSemanticsImpl()

boolean com.jogamp.gluegen.cgram.types.ArrayType.equalSemanticsImpl ( final Type  arg)
protected

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 97 of file ArrayType.java.

Here is the call graph for this function:

◆ equalsImpl()

boolean com.jogamp.gluegen.cgram.types.ArrayType.equalsImpl ( final Type  arg)
protected

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 83 of file ArrayType.java.

Here is the call graph for this function:

◆ getArrayBaseOrPointerTargetType()

Type com.jogamp.gluegen.cgram.types.ArrayType.getArrayBaseOrPointerTargetType ( )

Return getBaseType() if isArray() or returns getTargetType() otherwise.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 125 of file ArrayType.java.

Here is the call graph for this function:

◆ getBaseType()

final Type com.jogamp.gluegen.cgram.types.ArrayType.getBaseType ( )

Helper method to returns the bottom-most element type of this type, i.e.

returns @iliteral{code} type @endiliteral if this-type is @iliteral{code} type @endiliteral *, @iliteral{code} type @endiliteral **, @iliteral{code} type @endiliteral [] or @iliteral{code} type @endiliteral [][].

If this is a multidimensional array or pointer method returns the bottom-most element type, otherwise this.

In case a isFunctionPointer() type is reached, traversing ends and the function PointerType is returned.

See also
getTargetType()
getTargetFunction()

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 120 of file ArrayType.java.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLength()

int com.jogamp.gluegen.cgram.types.ArrayType.getLength ( )

Definition at line 116 of file ArrayType.java.

Here is the caller graph for this function:

◆ getName()

String com.jogamp.gluegen.cgram.types.ArrayType.getName ( final boolean  includeCVAttrs)

Returns the name of this type, optionally including const/volatile attributes.

The returned string is suitable for use as a type specifier for Java.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 107 of file ArrayType.java.

Here is the call graph for this function:

◆ getTargetType()

final Type com.jogamp.gluegen.cgram.types.ArrayType.getTargetType ( )

Helper method to returns the target type of this type, in case another type is being referenced, i.e.

returns @iliteral{code} type @endiliteral if this-type is @iliteral{code} type @endiliteral * or @iliteral{code} type @endiliteral [] and returns @iliteral{code} type @endiliteral * if this-type is @iliteral{code} type @endiliteral ** or @iliteral{code} type @endiliteral [][].

If this is an array or pointer method returns the next target element type, otherwise this.

In this is a isFunctionPointer() type, this function PointerType is returned.

See also
getBaseType()
getTargetFunction()

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 115 of file ArrayType.java.

Here is the caller graph for this function:

◆ hashCodeImpl()

int com.jogamp.gluegen.cgram.types.ArrayType.hashCodeImpl ( )
protected

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 76 of file ArrayType.java.

Here is the call graph for this function:

◆ hashCodeSemanticsImpl()

int com.jogamp.gluegen.cgram.types.ArrayType.hashCodeSemanticsImpl ( )
protected

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 90 of file ArrayType.java.

Here is the call graph for this function:

◆ hasLength()

boolean com.jogamp.gluegen.cgram.types.ArrayType.hasLength ( )

Definition at line 117 of file ArrayType.java.

◆ isAnon()

boolean com.jogamp.gluegen.cgram.types.ArrayType.isAnon ( )

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 104 of file ArrayType.java.

Here is the call graph for this function:

◆ toString() [1/2]

String com.jogamp.gluegen.cgram.types.ArrayType.toString ( )

Returns a string representation of this type.

The returned string is suitable for use as a type specifier for native C. It does contain an expanded description of structs/unions, hence may not be suitable for type declarations.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 149 of file ArrayType.java.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toString() [2/2]

String com.jogamp.gluegen.cgram.types.ArrayType.toString ( final String  variableName)

Definition at line 153 of file ArrayType.java.

Here is the call graph for this function:

◆ visit()

void com.jogamp.gluegen.cgram.types.ArrayType.visit ( final TypeVisitor  visitor)

Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType.

Reimplemented from com.jogamp.gluegen.cgram.types.Type.

Definition at line 170 of file ArrayType.java.

Here is the call graph for this function:

The documentation for this class was generated from the following file: