# gdcm::Attribute< Group, Element, TVR, TVM > Class Template Reference

Attribute class This class use template metaprograming tricks to let the user know when the template instanciation does not match the public dictionary. More...

`#include <gdcmAttribute.h>`

Collaboration diagram for gdcm::Attribute< Group, Element, TVR, TVM >:
[legend]

List of all members.

## Public Types

enum | { VMType = VMToLength<TVM>::Length }
typedef VRToType< TVR >::Type | ArrayType

## Public Member Functions

| GDCM_STATIC_ASSERT (((VR::VRType) TVR &(VR::VRType)(TagToType< Group, Element >::VRType)))
| GDCM_STATIC_ASSERT (((VM::VMType) TVM &(VM::VMType)(TagToType< Group, Element >::VMType)))
| GDCM_STATIC_ASSERT (((((VR::VRType) TVR &VR::VR_VM1)&&((VM::VMType) TVM==VM::VM1))||!((VR::VRType) TVR &VR::VR_VM1)))
DataElement | GetAsDataElement () const
unsigned int | GetNumberOfValues () const
ArrayType & | GetValue (unsigned int idx=0)
ArrayType const & | GetValue (unsigned int idx=0) const
const ArrayType * | GetValues () const
bool | operator!= (const Attribute &att) const
bool | operator< (const Attribute &att) const
bool | operator== (const Attribute &att) const
ArrayType & | operator[] (unsigned int idx)
ArrayType const & | operator[] (unsigned int idx) const
void | Print (std::ostream &os) const
void | Set (DataSet const &ds)
void | SetFromDataElement (DataElement const &de)
void | SetFromDataSet (DataSet const &ds)
void | SetValue (ArrayType v, unsigned int idx=0)
void | SetValues (const ArrayType *array, unsigned int numel=VMType)

## Static Public Member Functions

static VM | GetDictVM ()
static VR | GetDictVR ()
static Tag | GetTag ()
static VM | GetVM ()
static VR | GetVR ()

## Public Attributes

ArrayType | Internal [VMToLength< TVM >::Length]

## Protected Member Functions

void | SetByteValue (const ByteValue *bv)
void | SetByteValueNoSwap (const ByteValue *bv)

## Detailed Description

### template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>
class gdcm::Attribute< Group, Element, TVR, TVM >

Attribute class This class use template metaprograming tricks to let the user know when the template instanciation does not match the public dictionary.

Typical example that compile is: Attribute<0x0008,0x9007> a = {"ORIGINAL","PRIMARY","T1","NONE"};

Examples that will NOT compile are:

Attribute<0x0018,0x1182, VR::IS, VM::VM1> fd1 = {}; // not enough parameters Attribute<0x0018,0x1182, VR::IS, VM::VM2> fd2 = {0,1,2}; // too many initializers Attribute<0x0018,0x1182, VR::IS, VM::VM3> fd3 = {0,1,2}; // VM3 is not valid Attribute<0x0018,0x1182, VR::UL, VM::VM2> fd3 = {0,1}; // UL is not valid VR

Examples:

  gdcmrtionplan.cxx, gdcmrtplan.cxx, GenFakeIdentifyFile.cxx, GetSequenceUltrasound.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, PatchFile.cxx, ReadAndPrintAttributes.cxx, SortImage.cxx, and VolumeSorter.cxx.

## Member Typedef Documentation

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

typedef VRToType<TVR>::Type gdcm::Attribute< Group, Element, TVR, TVM >::ArrayType

## Member Enumeration Documentation

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

anonymous enum

Enumerator:

  VMType |

## Member Function Documentation

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

gdcm::Attribute< Group, Element, TVR, TVM >::GDCM_STATIC_ASSERT | ( | ((VR::VRType) TVR &(VR::VRType)(TagToType< Group, Element >::VRType)) |  | ) |

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

gdcm::Attribute< Group, Element, TVR, TVM >::GDCM_STATIC_ASSERT | ( | ((VM::VMType) TVM &(VM::VMType)(TagToType< Group, Element >::VMType)) |  | ) |

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

gdcm::Attribute< Group, Element, TVR, TVM >::GDCM_STATIC_ASSERT | ( | ((((VR::VRType) TVR &VR::VR_VM1)&&((VM::VMType) TVM==VM::VM1))||!((VR::VRType) TVR &VR::VR_VM1)) |  | ) |

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

DataElement gdcm::Attribute< Group, Element, TVR, TVM >::GetAsDataElement | ( |  | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetTag(), gdcm::DataElement::GetVR(), gdcm::Attribute< Group, Element, TVR, TVM >::GetVR(), gdcm::Attribute< Group, Element, TVR, TVM >::Internal, gdcm::DataElement::SetByteValue(), gdcm::DataElement::SetVR(), gdcm::VR::SQ, gdcm::VR::UI, and gdcm::VR::VRASCII.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

static VM gdcm::Attribute< Group, Element, TVR, TVM >::GetDictVM | ( |  | ) | `[inline, static]`

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

static VR gdcm::Attribute< Group, Element, TVR, TVM >::GetDictVR | ( |  | ) | `[inline, static]`

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

unsigned int gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues | ( |  | ) | const`[inline]`

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetValue(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator!=(), gdcm::Attribute< Group, Element, TVR, TVM >::operator!=(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator<(), gdcm::Attribute< Group, Element, TVR, TVM >::operator<(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator==(), gdcm::Attribute< Group, Element, TVR, TVM >::operator==(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Print(), gdcm::Attribute< Group, Element, TVR, TVM >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetByteValue(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetByteValueNoSwap(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValueNoSwap(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetValue(), gdcm::Attribute< Group, Element, TVR, TVM >::SetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetValues().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

static Tag gdcm::Attribute< Group, Element, TVR, TVM >::GetTag | ( |  | ) | `[inline, static]`

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::Print(), gdcm::Attribute< Group, Element, TVR, TVM >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::Set(), gdcm::Attribute< Group, Element, TVR, TVM >::Set(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetFromDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataSet(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataSet().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

ArrayType const& gdcm::Attribute< Group, Element, TVR, TVM >::GetValue | ( | unsigned int | idx = `0` | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

ArrayType& gdcm::Attribute< Group, Element, TVR, TVM >::GetValue | ( | unsigned int | idx = `0` | ) | `[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::operator[](), and gdcm::Attribute< Group, Element, TVR, TVM >::operator[]().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

const ArrayType* gdcm::Attribute< Group, Element, TVR, TVM >::GetValues | ( |  | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator!=(), gdcm::Attribute< Group, Element, TVR, TVM >::operator!=(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator<(), gdcm::Attribute< Group, Element, TVR, TVM >::operator<(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator==(), and gdcm::Attribute< Group, Element, TVR, TVM >::operator==().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

static VM gdcm::Attribute< Group, Element, TVR, TVM >::GetVM | ( |  | ) | `[inline, static]`

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetDictVM(), and gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Print().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

static VR gdcm::Attribute< Group, Element, TVR, TVM >::GetVR | ( |  | ) | `[inline, static]`

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetFromDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataElement(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

bool gdcm::Attribute< Group, Element, TVR, TVM >::operator!= | ( | const Attribute< Group, Element, TVR, TVM > & | att | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

bool gdcm::Attribute< Group, Element, TVR, TVM >::operator< | ( | const Attribute< Group, Element, TVR, TVM > & | att | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

bool gdcm::Attribute< Group, Element, TVR, TVM >::operator== | ( | const Attribute< Group, Element, TVR, TVM > & | att | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

ArrayType const& gdcm::Attribute< Group, Element, TVR, TVM >::operator[] | ( | unsigned int | idx | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetValue().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

ArrayType& gdcm::Attribute< Group, Element, TVR, TVM >::operator[] | ( | unsigned int | idx | ) | `[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetValue().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::Print | ( | std::ostream & | os | ) | const`[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetTag(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::Set | ( | DataSet const & | ds | ) | `[inline]`

References gdcm::DataSet::GetDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetTag(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValue | ( | const ByteValue * | bv | ) | `[inline, protected]`

References gdcm::ByteValue::GetLength(), gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::ByteValue::GetPointer(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetFromDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataElement(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValueNoSwap | ( | const ByteValue * | bv | ) | `[inline, protected]`

References gdcm::ByteValue::GetLength(), gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), gdcm::ByteValue::GetPointer(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataElement(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement | ( | DataElement const & | de | ) | `[inline]`

References gdcm::DataElement::GetByteValue(), gdcm::Tag::GetGroup(), gdcm::DataElement::GetTag(), gdcm::Attribute< Group, Element, TVR, TVM >::GetTag(), gdcm::DataElement::GetVR(), gdcm::Attribute< Group, Element, TVR, TVM >::GetVR(), gdcm::VR::INVALID, gdcm::DataElement::IsEmpty(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValue(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValueNoSwap(), and gdcm::VR::UN.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1 >::Set(), gdcm::Attribute< Group, Element, TVR, TVM >::Set(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataSet(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataSet().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataSet | ( | DataSet const & | ds | ) | `[inline]`

References gdcm::DataSet::FindDataElement(), gdcm::DataSet::GetDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetTag(), gdcm::DataElement::IsEmpty(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataElement().

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetValue | ( | ArrayType | v,
|  | unsigned int | idx = `0`
| ) |  | `[inline]`

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

void gdcm::Attribute< Group, Element, TVR, TVM >::SetValues | ( | const ArrayType * | array,
|  | unsigned int | numel = `VMType`
| ) |  | `[inline]`

Examples:
  LargeVRDSExplicit.cxx.

References gdcm::Attribute< Group, Element, TVR, TVM >::GetNumberOfValues(), and gdcm::Attribute< Group, Element, TVR, TVM >::Internal.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetByteValue(), and gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetNumberOfValues().

## Member Data Documentation

template<uint16_t Group, uint16_t Element, int TVR = TagToType<Group, Element>::VRType, int TVM = TagToType<Group, Element>::VMType>

ArrayType gdcm::Attribute< Group, Element, TVR, TVM >::Internal[VMToLength< TVM >::Length]

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Attribute(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, TVM >::GetAsDataElement(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetValue(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::GetValues(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::GetValues(), gdcm::Attribute< Group, Element, TVR, TVM >::GetValues(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator!=(), gdcm::Attribute< Group, Element, TVR, TVM >::operator!=(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator<(), gdcm::Attribute< Group, Element, TVR, TVM >::operator<(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::operator==(), gdcm::Attribute< Group, Element, TVR, TVM >::operator==(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::Print(), gdcm::Attribute< Group, Element, TVR, TVM >::Print(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetByteValue(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetByteValueNoSwap(), gdcm::Attribute< Group, Element, TVR, TVM >::SetByteValueNoSwap(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetValue(), gdcm::Attribute< Group, Element, TVR, TVM >::SetValue(), gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::SetValues(), gdcm::Attribute< Group, Element, TVR, TVM >::SetValues(), and gdcm::Attribute< Group, Element, TVR, VM::VM1_n >::~Attribute().

The documentation for this class was generated from the following file:

- gdcmAttribute.h