Common Pipeline Library Reference Manual  7.1
Functions
Type codes

Functions

const char * cpl_type_get_name (cpl_type type)
 Get a string with the name of a type, e.g. "char", "int", "float". More...
 
size_t cpl_type_get_sizeof (cpl_type type)
 Compute the size of a type. More...
 
enum  _cpl_type_ {
  CPL_TYPE_FLAG_ARRAY,
  CPL_TYPE_INVALID,
  CPL_TYPE_CHAR,
  CPL_TYPE_UCHAR,
  CPL_TYPE_BOOL,
  CPL_TYPE_SHORT,
  CPL_TYPE_USHORT,
  CPL_TYPE_INT,
  CPL_TYPE_UINT,
  CPL_TYPE_LONG,
  CPL_TYPE_ULONG,
  CPL_TYPE_LONG_LONG,
  CPL_TYPE_SIZE,
  CPL_TYPE_FLOAT,
  CPL_TYPE_DOUBLE,
  CPL_TYPE_POINTER,
  CPL_TYPE_COMPLEX,
  CPL_TYPE_UNSPECIFIED,
  CPL_TYPE_BITMASK,
  CPL_TYPE_STRING,
  CPL_TYPE_FLOAT_COMPLEX,
  CPL_TYPE_DOUBLE_COMPLEX
}
 The CPL type codes and flags. More...
 
typedef enum _cpl_type_ cpl_type
 The type code type. More...
 
typedef long long cpl_size
 The type used for sizes and indices in CPL. More...
 
typedef uint64_t cpl_bitmask
 The CPL bitmask type for bitmask operations. More...
 
#define CPL_SIZE_MIN
 Minimum value a variable of type cpl_size can hold. More...
 
#define CPL_SIZE_MAX
 Maximum value a variable of type cpl_size can hold. More...
 
#define CPL_SIZE_FORMAT
 The format specifier for the type cpl_size. More...
 

Detailed Description

This module provides codes for the basic types (including char, int, float, etc.) used in CPL. These type codes may be used to indicate the type of a value stored in another object, the value of a property or the pixel of an image for instance. In addition, a utility function is provided to compute the size, which is required to store a value of the type indicated by a given type code.

The module

Synopsis
#include <cpl_type.h>

Macro Definition Documentation

#define CPL_SIZE_FORMAT
#define CPL_SIZE_MAX

Maximum value a variable of type cpl_size can hold.

#define CPL_SIZE_MIN

Minimum value a variable of type cpl_size can hold.

Typedef Documentation

typedef uint64_t cpl_bitmask

The CPL bitmask type for bitmask operations.

Note
The CPL bitmask is currently used only for bit-wise operations on CPL images of integer pixel type, which are 32-bits wide. For forward compatibility the CPL bitmask is 64 bits wide, which is cast to 32 bits when used with a CPL_TYPE_INT.
static cpl_image cpl_size

The type used for sizes and indices in CPL.

typedef enum _cpl_type_ cpl_type

The type code type.

Enumeration Type Documentation

enum _cpl_type_

The CPL type codes and flags.

Enumerator
CPL_TYPE_FLAG_ARRAY 

Flag indicating whether a type is an array or a basic type.

CPL_TYPE_INVALID 

Invalid or undetermined type.

CPL_TYPE_CHAR 

Type code corresponding to type char.

CPL_TYPE_UCHAR 

Type code corresponding to type unsigned char.

CPL_TYPE_BOOL 

Type code corresponding to the boolean type.

CPL_TYPE_SHORT 

Type code corresponding to type short.

CPL_TYPE_USHORT 

Type code corresponding to type unsigned short.

CPL_TYPE_INT 

Type code corresponding to type int.

CPL_TYPE_UINT 

Type code corresponding to type unsigned int.

CPL_TYPE_LONG 

Type code corresponding to type long.

CPL_TYPE_ULONG 

Type code corresponding to type unsigned long.

CPL_TYPE_LONG_LONG 

Type code corresponding to type long long.

CPL_TYPE_SIZE 

Type code corresponding to type cpl_size

CPL_TYPE_FLOAT 

Type code corresponding to type float.

CPL_TYPE_DOUBLE 

Type code corresponding to type double.

CPL_TYPE_POINTER 

Type code corresponding to a pointer type.

CPL_TYPE_COMPLEX 

Type code corresponding to a complex type.

CPL_TYPE_UNSPECIFIED 

Type code to be used for inheritance of original FITS type.

CPL_TYPE_BITMASK 

Type code corresponding to type cpl_bitmask

CPL_TYPE_STRING 

Type code corresponding to a character array.

CPL_TYPE_FLOAT_COMPLEX 

Type code corresponding to type float complex.

CPL_TYPE_DOUBLE_COMPLEX 

Type code corresponding to type double complex.

Function Documentation

const char* cpl_type_get_name ( cpl_type  type)

Get a string with the name of a type, e.g. "char", "int", "float".

Parameters
typeType code to be evaluated.
Returns
A pointer to a string literal with the name or empty string on error.

References CPL_ERROR_INVALID_TYPE, CPL_TYPE_BOOL, CPL_TYPE_CHAR, CPL_TYPE_DOUBLE, CPL_TYPE_DOUBLE_COMPLEX, CPL_TYPE_FLAG_ARRAY, CPL_TYPE_FLOAT, CPL_TYPE_FLOAT_COMPLEX, CPL_TYPE_INT, CPL_TYPE_INVALID, CPL_TYPE_LONG, CPL_TYPE_LONG_LONG, CPL_TYPE_POINTER, CPL_TYPE_SHORT, CPL_TYPE_SIZE, CPL_TYPE_STRING, CPL_TYPE_UCHAR, CPL_TYPE_UINT, CPL_TYPE_ULONG, CPL_TYPE_UNSPECIFIED, and CPL_TYPE_USHORT.

Referenced by cpl_array_new(), cpl_fit_image_gaussian(), cpl_image_and(), cpl_image_and_scalar(), cpl_image_dump_structure(), cpl_image_exponential(), cpl_image_hypot(), cpl_image_logarithm(), cpl_image_not(), cpl_image_or(), cpl_image_or_scalar(), cpl_image_power(), cpl_image_xor(), cpl_image_xor_scalar(), cpl_parameter_get_bool(), cpl_parameter_get_default_bool(), cpl_parameter_get_default_double(), cpl_parameter_get_default_int(), cpl_parameter_get_default_string(), cpl_parameter_get_double(), cpl_parameter_get_enum_double(), cpl_parameter_get_enum_int(), cpl_parameter_get_enum_size(), cpl_parameter_get_enum_string(), cpl_parameter_get_int(), cpl_parameter_get_range_max_double(), cpl_parameter_get_range_max_int(), cpl_parameter_get_range_min_double(), cpl_parameter_get_range_min_int(), cpl_parameter_get_string(), cpl_parameter_new_enum(), cpl_parameter_new_range(), cpl_parameter_new_value(), cpl_parameter_set_bool(), cpl_parameter_set_default_bool(), cpl_parameter_set_default_double(), cpl_parameter_set_default_int(), cpl_parameter_set_default_string(), cpl_parameter_set_double(), cpl_parameter_set_int(), cpl_parameter_set_string(), cpl_propertylist_dump(), cpl_table_get(), cpl_table_get_complex(), and cpl_table_get_int().

size_t cpl_type_get_sizeof ( cpl_type  type)

Compute the size of a type.

Parameters
typeType code to be evaluated.
Returns
The size of the fundamental type, or 0 in case an invalid type code was given.

The function computes the atomic size of the type type. The result for fundamental types like CPL_TYPE_FLOAT is what you would expect from the C sizeof() operator. For arrays, i.e. types having the CPL_TYPE_FLAG_ARRAY set the returned size is not the size of a pointer to CPL_TYPE_FLOAT for instance, but the size of its fundamental type, i.e. the returned size is same as for the type CPL_TYPE_FLOAT.

Especially for the type CPL_TYPE_STRING, which is explicitly defined for convenience reasons, the size returned by this function is the size of CPL_TYPE_CHAR!

References CPL_TYPE_BOOL, CPL_TYPE_CHAR, CPL_TYPE_DOUBLE, CPL_TYPE_DOUBLE_COMPLEX, CPL_TYPE_FLAG_ARRAY, CPL_TYPE_FLOAT, CPL_TYPE_FLOAT_COMPLEX, CPL_TYPE_INT, CPL_TYPE_INVALID, CPL_TYPE_LONG, CPL_TYPE_LONG_LONG, CPL_TYPE_POINTER, CPL_TYPE_SHORT, CPL_TYPE_SIZE, CPL_TYPE_UCHAR, CPL_TYPE_UINT, CPL_TYPE_ULONG, CPL_TYPE_UNSPECIFIED, and CPL_TYPE_USHORT.

Referenced by cpl_fit_imagelist_polynomial_window(), cpl_image_and(), cpl_image_and_scalar(), cpl_image_copy(), cpl_image_duplicate(), cpl_image_filter(), cpl_image_filter_mask(), cpl_image_not(), cpl_image_or(), cpl_image_or_scalar(), cpl_image_shift(), cpl_image_xor(), cpl_image_xor_scalar(), cpl_property_new(), cpl_property_new_array(), and cpl_test_get_bytes_image().