# MI - Fimex: include/fimex/DataImpl.h File Reference

# include/fimex/DataImpl.h File Reference

`#include <typeinfo>`
`#include <boost/shared_ptr.hpp>`
`#include <string>`
`#include <sstream>`
`#include <iostream>`
`#include <iterator>`
`#include <cmath>`
`#include <algorithm>`
`#include "fimex/Data.h"`
`#include "fimex/CDMDataType.h"`
`#include "fimex/CDMException.h"`
`#include "fimex/Utils.h"`

Go to the source code of this file.

## Namespaces

namespace | MetNoFimex

## Classes

class | MetNoFimex::DataImpl< C >

## Functions

template<typename T1, typename T2>
boost::shared_array< T1 > | MetNoFimex::duplicateArrayType (const boost::shared_array< T2 > &inData, long length)
| create a new shared array with a different type using static_cast
template<typename T1, typename T2>
const boost::shared_array< T1 > | MetNoFimex::constConvertArrayType (const boost::shared_array< T2 > &inData, long length)
| return a shared array of this data, possibly pointer to internal data
template<class InputIterator>
boost::shared_ptr< Data > | MetNoFimex::createData (CDMDataType datatype, InputIterator first, InputIterator last) throw (CDMException)
| create a Data-pointer of the datatype and fill with the data from the iterator
template<typename C>
void | MetNoFimex::recursiveCopyMultiDimData (C **orgData, C **newData, const std::vector< size_t > &orgDimSize, const std::vector< size_t > &orgSliceSize, const std::vector< size_t > &newStart, const std::vector< size_t > &newSize, size_t currentDim)
template<typename OUT, typename IN>
boost::shared_array< OUT > | MetNoFimex::convertArrayType (const boost::shared_array< IN > &inData, size_t length, double oldFill, double oldScale, double oldOffset, double newFill, double newScale, double newOffset)