26 inline void DatasetWriter::SetDataType<int>()
33 inline void DatasetWriter::SetDataType<unsigned int>()
36 AdjustSizes<unsigned int>();
40 inline void DatasetWriter::SetDataType<char>()
47 inline void DatasetWriter::SetDataType<unsigned char>()
50 AdjustSizes<unsigned char>();
54 inline void DatasetWriter::SetDataType<short>()
61 inline void DatasetWriter::SetDataType<unsigned short>()
64 AdjustSizes<unsigned short>();
68 inline void DatasetWriter::SetDataType<long>()
70 if(
sizeof(
long) == 4 )
82 inline void DatasetWriter::SetDataType<unsigned long>()
84 if(
sizeof(
unsigned long) == 4 )
92 AdjustSizes<unsigned long>();
97 inline void DatasetWriter::SetDataType<yat::int64>()
100 AdjustSizes<yat::int64>();
104 inline void DatasetWriter::SetDataType<yat::uint64>()
107 AdjustSizes<yat::uint64>();
112 inline void DatasetWriter::SetDataType<float>()
115 AdjustSizes<float>();
119 inline void DatasetWriter::SetDataType<double>()
122 AdjustSizes<double>();
125 template <
class TYPE>
126 void DatasetWriter::SetDataType()
128 throw yat::Exception(
"UNRECOGNIZED TYPE",
"Unable to map <TYPE> to Nexus type",
"DatasetWriter::SetDataType");
134 template <
class TYPE>
135 void DatasetWriter::AdjustSizes()
137 m_ulDataItemSize =
sizeof(TYPE);
139 for(
unsigned int i = 0; i < m_nTotalRank; i++ )
141 m_ulDataItemSize *= m_aiDataItemDim[i];
143 yat::int64 totalSize =
sizeof(TYPE);
144 for(
unsigned int i = 0; i < m_nTotalRank; i++ )
146 totalSize *= m_aiTotalDim[i];
151 m_ui64TotalSize = -totalSize;
155 m_ui64TotalSize = totalSize;
165 template <
class TYPE>
178 template <
class TYPE>
183 shapeMatrix.push_back(iSize);
196 template <
class TYPE>
208 template <
class TYPE>
218 template <
class TYPE>
void PushData(const void *pData, std::size_t nDataCount=1, bool bNoCopy=false)
Push data.
void SetShapes(const DataShape &shapeDataItem, const DataShape &shapeMatrix)
AxisDatasetWriter(int iDim, int iSize, int iOrder=1)
Definition: nxwriter.hpp:179
void AddIntegerAttribute(const std::string &strName, long lValue)
Adding integer-type attribute to the NeXus dataset.
const DataShape g_empty_shape
SignalDatasetWriter(const DataShape &shapeData, const DataShape &shapeMatrix=g_empty_shape, int iSignal=1)
Definition: nxwriter.hpp:209
void PushPosition(TYPE TValue)
Definition: nxwriter.hpp:197
Definition: nxwriter.h:431
Definition: nxwriter.h:630
std::vector< std::size_t > DataShape
Data shape type.
Definition: nxwriter.h:421
void PushSignal(TYPE *pValue)
Definition: nxwriter.hpp:219