MeVisLab Toolbox Reference
DCMTree::Value Class Reference

Class to store tag values. More...

#include <DCMTree_Value.h>

Inheritance diagram for DCMTree::Value:
DCMTree_Serialization::Serializable DCMTree_Serialization::Deserializable

Public Types

enum  SetDataMode { SDM_makeCopy , SDM_takeOwnership }

Public Member Functions

 Value ()
 Constructor.
 Value (const unsigned int &size)
 Creates a value with the given size in bytes.
 Value (const unsigned int &size, const unsigned char *data)
 Creates a value with the given size in bytes and memcpy data to it.
 Value (const Value &other)
 Makes a deep copy of other to this.
 Value (Value &&) noexcept=default
Valueoperator= (Value &&other) noexcept=default
 ~Value () override
 Destructor.
Valueoperator= (const Value &other)
 Deep copies all values from other to this.
bool operator== (const Value &other) const
 Returns true if the value data are identical.
bool operator!= (const Value &other) const
 Returns true if the value data are not identical.
void purge ()
 Drops all data.
unsigned int size () const
 Returns the size of the valid part of data.
const unsigned char * data () const
 Accesses data.
unsigned char * data ()
 Accesses data.
boost::shared_array< unsigned char > sharedData () const
 Accesses data.
void setSize (const unsigned int &size)
 Sets the size or capacity of this.
void setData (const unsigned int &size, const unsigned char *data)
 Sets data and capacity.
void setData (const unsigned int &size, unsigned char *data, SetDataMode setDataMode=SDM_makeCopy)
 Sets data and capacity.
void setData (const std::string &value)
 Deep copies the given string as binary data.
bool isNull () const
 Checks whether size of this is 0.
void fromStream (std::istream &in)
 Extracts this instance from the given stream.
void toStream (std::ostream &out) const
 Copies this instance recursively into the given stream.
void serializeX (DCMTree_Serialization::Sink &sink) const override
 Writes data of this object to sink.
void deserializeX (DCMTree_Serialization::Source &source) override
 Overwrites data of this object with data from source.
Public Member Functions inherited from DCMTree_Serialization::Serializable
virtual ~Serializable ()
 Empty.
Public Member Functions inherited from DCMTree_Serialization::Deserializable
virtual ~Deserializable ()
 Empty.

Detailed Description

Class to store tag values.

Definition at line 44 of file DCMTree_Value.h.

Member Enumeration Documentation

◆ SetDataMode

Enumerator
SDM_makeCopy 
SDM_takeOwnership 

Definition at line 47 of file DCMTree_Value.h.

Constructor & Destructor Documentation

◆ Value() [1/5]

DCMTree::Value::Value ( )

Constructor.

Referenced by operator!=(), operator=(), operator=(), operator==(), Value(), Value(), and ~Value().

◆ Value() [2/5]

DCMTree::Value::Value ( const unsigned int & size)

Creates a value with the given size in bytes.

References size().

◆ Value() [3/5]

DCMTree::Value::Value ( const unsigned int & size,
const unsigned char * data )

Creates a value with the given size in bytes and memcpy data to it.

The given data remains owned by the caller.

References data(), and size().

◆ Value() [4/5]

DCMTree::Value::Value ( const Value & other)

Makes a deep copy of other to this.

Uses operator=

References Value().

◆ Value() [5/5]

DCMTree::Value::Value ( Value && )
defaultnoexcept

References Value().

◆ ~Value()

DCMTree::Value::~Value ( )
override

Destructor.

References Value().

Member Function Documentation

◆ data() [1/2]

unsigned char * DCMTree::Value::data ( )

Accesses data.

References data().

◆ data() [2/2]

const unsigned char * DCMTree::Value::data ( ) const

Accesses data.

References data().

Referenced by data(), data(), setData(), setData(), and Value().

◆ deserializeX()

void DCMTree::Value::deserializeX ( DCMTree_Serialization::Source & source)
overridevirtual

Overwrites data of this object with data from source.

All the rules stated for SCR::Serializable::serializeX apply correspondingly.

See also
SCR::Serializable::serializeX

Implements DCMTree_Serialization::Deserializable.

References deserializeX(), and size().

Referenced by deserializeX().

◆ fromStream()

void DCMTree::Value::fromStream ( std::istream & in)

Extracts this instance from the given stream.

References fromStream().

Referenced by fromStream(), and DCMTree::operator>>().

◆ isNull()

bool DCMTree::Value::isNull ( ) const

Checks whether size of this is 0.

References isNull().

Referenced by isNull().

◆ operator!=()

bool DCMTree::Value::operator!= ( const Value & other) const

Returns true if the value data are not identical.

References Value().

◆ operator=() [1/2]

Value & DCMTree::Value::operator= ( const Value & other)

Deep copies all values from other to this.

Handles self-assignment well.

References Value().

◆ operator=() [2/2]

Value & DCMTree::Value::operator= ( Value && other)
defaultnoexcept

References Value().

◆ operator==()

bool DCMTree::Value::operator== ( const Value & other) const

Returns true if the value data are identical.

References Value().

◆ purge()

void DCMTree::Value::purge ( )

Drops all data.

References purge().

Referenced by purge().

◆ serializeX()

void DCMTree::Value::serializeX ( DCMTree_Serialization::Sink & sink) const
overridevirtual

Writes data of this object to sink.

Implementations of Serializable::serializeX should strictly follow this pattern:

class C: public SCR::Serializable { T1 _m1; T2 _m2; T3 _m3; public: void serializeX(SCR::Sink &sink) const { SCR::serializeX(sink, _m1); SCR::serializeX(sink, _m2); SCR::serializeX(sink, _m3); } };

That is, you should call some overloading of SCR::serializeX for every member.

If some of the types T1, T2, T3 are not serializable, you should make them serializable.

See also
SCR

Implements DCMTree_Serialization::Serializable.

References serializeX().

Referenced by serializeX().

◆ setData() [1/3]

void DCMTree::Value::setData ( const std::string & value)

Deep copies the given string as binary data.

The size is adjusted accordingly without type conversion.

References setData().

◆ setData() [2/3]

void DCMTree::Value::setData ( const unsigned int & size,
const unsigned char * data )

Sets data and capacity.

The given data remains owned by the caller.

References data(), setData(), and size().

Referenced by setData(), setData(), and setData().

◆ setData() [3/3]

void DCMTree::Value::setData ( const unsigned int & size,
unsigned char * data,
SetDataMode setDataMode = SDM_makeCopy )

Sets data and capacity.

Parameters
setDataModeIndicates whether the given data remains owned by the caller and has to be copied.

References data(), SDM_makeCopy, setData(), and size().

◆ setSize()

void DCMTree::Value::setSize ( const unsigned int & size)

Sets the size or capacity of this.

References setSize(), and size().

Referenced by setSize().

◆ sharedData()

boost::shared_array< unsigned char > DCMTree::Value::sharedData ( ) const

Accesses data.

References sharedData().

Referenced by sharedData().

◆ size()

unsigned int DCMTree::Value::size ( ) const

Returns the size of the valid part of data.

References size().

Referenced by deserializeX(), setData(), setData(), setSize(), size(), Value(), and Value().

◆ toStream()

void DCMTree::Value::toStream ( std::ostream & out) const

Copies this instance recursively into the given stream.

References toStream().

Referenced by toStream().


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