Package jnr.ffi.mapper
Class CachingTypeMapper
- java.lang.Object
-
- jnr.ffi.mapper.AbstractSignatureTypeMapper
-
- jnr.ffi.mapper.CachingTypeMapper
-
- All Implemented Interfaces:
SignatureTypeMapper
public final class CachingTypeMapper extends AbstractSignatureTypeMapper implements SignatureTypeMapper
Caches native converter lookups by class.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
CachingTypeMapper.InvalidType
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<SignatureType,FromNativeType>
fromNativeTypeMap
private SignatureTypeMapper
mapper
private static CachingTypeMapper.InvalidType
NO_TYPE
private java.util.Map<SignatureType,ToNativeType>
toNativeTypeMap
private static CachingTypeMapper.InvalidType
UNCACHEABLE_TYPE
-
Constructor Summary
Constructors Constructor Description CachingTypeMapper(SignatureTypeMapper mapper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FromNativeType
getFromNativeType(SignatureType type, FromNativeContext context)
ToNativeType
getToNativeType(SignatureType type, ToNativeContext context)
private FromNativeType
lookupAndCacheFromNativeType(SignatureType signature, FromNativeContext context)
private ToNativeType
lookupAndCacheToNativeType(SignatureType signature, ToNativeContext context)
-
-
-
Field Detail
-
mapper
private final SignatureTypeMapper mapper
-
toNativeTypeMap
private volatile java.util.Map<SignatureType,ToNativeType> toNativeTypeMap
-
fromNativeTypeMap
private volatile java.util.Map<SignatureType,FromNativeType> fromNativeTypeMap
-
UNCACHEABLE_TYPE
private static final CachingTypeMapper.InvalidType UNCACHEABLE_TYPE
-
NO_TYPE
private static final CachingTypeMapper.InvalidType NO_TYPE
-
-
Constructor Detail
-
CachingTypeMapper
public CachingTypeMapper(SignatureTypeMapper mapper)
-
-
Method Detail
-
getFromNativeType
public FromNativeType getFromNativeType(SignatureType type, FromNativeContext context)
- Specified by:
getFromNativeType
in interfaceSignatureTypeMapper
- Overrides:
getFromNativeType
in classAbstractSignatureTypeMapper
-
getToNativeType
public ToNativeType getToNativeType(SignatureType type, ToNativeContext context)
- Specified by:
getToNativeType
in interfaceSignatureTypeMapper
- Overrides:
getToNativeType
in classAbstractSignatureTypeMapper
-
lookupAndCacheFromNativeType
private FromNativeType lookupAndCacheFromNativeType(SignatureType signature, FromNativeContext context)
-
lookupAndCacheToNativeType
private ToNativeType lookupAndCacheToNativeType(SignatureType signature, ToNativeContext context)
-
-