14 #ifndef GDCMFRAGMENT_H
15 #define GDCMFRAGMENT_H
52 assert( !ValueLengthField.IsUndefined() );
53 assert( !ValueField || ValueField->GetLength() == ValueLengthField );
58 template <
typename TSwap>
59 std::istream &Read(std::istream &is)
61 TagField.
Read<TSwap>(is);
62 return ReadValue<TSwap>(is);
65 template <
typename TSwap>
66 std::istream &ReadValue(std::istream &is)
69 const Tag itemStart(0xfffe, 0xe000);
70 const Tag seqDelItem(0xfffe,0xe0dd);
77 if( !ValueLengthField.Read<TSwap>(is) )
85 #ifdef GDCM_SUPPORT_BROKEN_IMPLEMENTATION
86 if( TagField != itemStart && TagField != seqDelItem )
93 bv->SetLength(ValueLengthField);
94 if( !bv->Read<TSwap>(is) )
110 template <
typename TSwap>
111 std::ostream &
Write(std::ostream &os)
const {
112 const Tag itemStart(0xfffe, 0xe000);
113 const Tag seqDelItem(0xfffe,0xe0dd);
114 if( !TagField.Write<TSwap>(os) )
116 assert(0 &&
"Should not happen");
119 assert( TagField == itemStart
120 || TagField == seqDelItem );
129 if( !zero.
Write<TSwap>(os) )
131 assert(0 &&
"Should not happen");
137 assert( ValueLengthField );
138 if( !ValueLengthField.Write<TSwap>(os) )
140 assert(0 &&
"Should not happen");
145 if( ValueLengthField && bv )
149 assert( bv->
GetLength() == ValueLengthField );
150 if( !bv->
Write<TSwap>(os) )
152 assert(0 &&
"Should not happen");
174 #endif //GDCMFRAGMENT_H