MeVis/Foundation/Sources/ML/include/mlTemplateSupport.h File Reference

This file contains a set of convenience functions to determine information about a currently used template data type. More...

#include "mlInitSystemML.h"
#include "mlCarrierTypes.h"
#include "mlTypeTraits.h"

Go to the source code of this file.

Functions

template<typename OUTDTYPE , typename INDTYPE >
MLTypePushDoubleInfo MLTTypeInfosPushAndSetBoth (const OUTDTYPE *outPtr, MLDataType outDT, const INDTYPE *inPtr, MLDataType inDT)
 With this macro we solve a minor problem.
Test for MLCarrier* typed pointers: Return 0 (=false) for MLCarrierIn* and for built-in types, otherwise return 1(=true).
Disable all C++ specific things for this C file because it it must fulfil C-API requirements, i.e., it must not use c++.

The template stuff does not make sense in C anyway.

template<typename T >
MLint32 MLIsCarrierTypePtr (const T *)
Test for MLCarrierIn* typed pointers: Return 0 (=false) for MLCarrier* and for built-in types, otherwise return 1(=true).
template<typename T >
MLint32 MLIsCarrierInTypePtr (const T *)
Test for MLCarrier* and MLCarrierIn* typed pointers: Return 0 (=false) for built-in types, otherwise return 1(=true).
template<typename T >
MLint32 MLIsAnyCarrierTypePtr (const T *)
Test for standard (built-in) typed pointers: Return 1 (=true) for standard types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsStandardTypePtr (const T *)
Test for signed typed pointers: Return 1 (=true) for signed types and otherwise return 0(=false). For registered types the correct type must have been set with a MLTypeInfosPushAndSet* function.
template<typename T >
MLint32 MLIsSignedTypePtr (const T *)
Return the MLDataType for the currently used template data type pointer. For registered types the correct type must have been set with a MLTypeInfosPushAndSet* function.
template<typename T >
MLDataType MLGetDataTypeFromPtr (const T *)
Return the size in bytes of the physically compiled type for the currently used template data type pointer.
template<typename T >
size_t MLGetPhysicalDataTypeSizeFromPtr (const T *)
Test for standard (built-in) integer typed pointers from 8 to 32 bits: Return 1 (=true) for those types and otherwise (also for integer typed registered types) return 0(=false).
template<typename T >
MLint32 MLIs8_16_Or_32BitIntegerTypePtr (const T *)
Test for built-in 8 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs8BitIntegerTypePtr (const T *)
Test for built-in 16 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs16BitIntegerTypePtr (const T *)
Test for built-in 32 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs32BitIntegerTypePtr (const T *)
Test for built-in 64 bit signed or unsigned typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs64BitIntegerTypePtr (const T *)
Test for built-in integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsBuiltInIntegerTypePtr (const T *)
Test for built-in floating point typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsBuiltInFloatingPointTypePtr (const T *)
Test for built-in long double typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsLDoubleTypePtr (const T *)


Detailed Description

This file contains a set of convenience functions to determine information about a currently used template data type.

General comments to this file:

Author:
Wolf Spindler
Date:
11/2003

Definition in file mlTemplateSupport.h.


Function Documentation

template<typename T >
MLDataType MLGetDataTypeFromPtr ( const T *   )  [inline]

Definition at line 72 of file mlTemplateSupport.h.

Referenced by ml::TSubImage< DATATYPE >::TSubImage().

template<typename T >
size_t MLGetPhysicalDataTypeSizeFromPtr ( const T *   )  [inline]

Definition at line 78 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs16BitIntegerTypePtr ( const T *   )  [inline]

Definition at line 96 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs32BitIntegerTypePtr ( const T *   )  [inline]

Definition at line 102 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs64BitIntegerTypePtr ( const T *   )  [inline]

Definition at line 108 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs8_16_Or_32BitIntegerTypePtr ( const T *   )  [inline]

Definition at line 84 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs8BitIntegerTypePtr ( const T *   )  [inline]

Definition at line 90 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsAnyCarrierTypePtr ( const T *   )  [inline]

Definition at line 53 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsBuiltInFloatingPointTypePtr ( const T *   )  [inline]

Definition at line 120 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsBuiltInIntegerTypePtr ( const T *   )  [inline]

Definition at line 114 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsCarrierInTypePtr ( const T *   )  [inline]

template<typename T >
MLint32 MLIsCarrierTypePtr ( const T *   )  [inline]

template<typename T >
MLint32 MLIsLDoubleTypePtr ( const T *   )  [inline]

Definition at line 126 of file mlTemplateSupport.h.

Referenced by ml::TSubImage< DATATYPE >::copySubImage().

template<typename T >
MLint32 MLIsSignedTypePtr ( const T *   )  [inline]

Definition at line 66 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsStandardTypePtr ( const T *   )  [inline]

Definition at line 59 of file mlTemplateSupport.h.

template<typename OUTDTYPE , typename INDTYPE >
MLTypePushDoubleInfo MLTTypeInfosPushAndSetBoth ( const OUTDTYPE *  outPtr,
MLDataType  outDT,
const INDTYPE *  inPtr,
MLDataType  inDT 
) [inline]

With this macro we solve a minor problem.

If we work with two different carrier types (e.g., in TSubimg::copySubImage) then we always assume that one is an target/output carrier type and the second the source/input carrier type. Input carrier types address other type infos instances in the MLTypeInfosTable than output carrier types. So we have to decide which data type we need to set for the output and which for the input type. Since it also may happen that somebody copies output data into the and input buffer we have to exchange MLTypeInfos settings for output and input. We decide this by using implementing all indices pointing into the MLTypeInfosTable which indicates whether we have an input or an output carrier type. To select the right function version we need now only need to pass two dummy parameters of correct data types. They, however, can be NULL pointers casted to correct type.

Definition at line 149 of file mlTemplateSupport.h.

References _MLTypeError(), ML_TRACE_IN_TIME_CRITICAL, MLIsCarrierInTypePtr(), MLIsCarrierTypePtr(), and MLTypeInfosPushAndSetTypes().

Referenced by ml::TSubImage< DATATYPE >::copySubImage(), ml::TSubImage< DATATYPE >::copySubImageReorderColorPlanesToInterleaved(), and ml::TSubImage< DATATYPE >::fillBordersWithInputValues().


Generated on Sat Sep 3 18:37:43 2011 for MLReference by  doxygen 1.5.8