Odil
A C++11 library for the DICOM standard
Loading...
Searching...
No Matches
Message.h File Reference
#include "odil/DataSet.h"
#include "odil/odil.h"
#include "odil/registry.h"
#include "odil/Value.h"
Include dependency graph for Message.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  odil::message::Message
 Base class for all DIMSE messages. More...

Namespaces

namespace  odil
namespace  odil::message

Macros

#define ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function)
#define ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, TValueType, function)
#define ODIL_MESSAGE_SET_OPTIONAL_FIELD_MACRO(dataset, name, tag, function)
#define ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(name, tag)
#define ODIL_MESSAGE_MANDATORY_FIELD_STRING_MACRO(name, tag)
#define ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO(name, tag)
#define ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(name, tag)

Macro Definition Documentation

◆ ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO

#define ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO ( name,
tag )
Value:
ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::Integer, as_int)
#define ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function)
Definition Message.h:23

◆ ODIL_MESSAGE_MANDATORY_FIELD_MACRO

#define ODIL_MESSAGE_MANDATORY_FIELD_MACRO ( name,
tag,
TValueType,
function )
Value:
\
TValueType const & get_##name() const \
{ \
auto const & data = this->_command_set->function(tag); \
if(data.empty()) \
{ \
throw Exception("Empty element"); \
} \
return data[0]; \
} \ \
void set_##name(TValueType const & value) \
{ \
if(!this->_command_set->has(tag)) \
{ \
this->_command_set->add(tag); \
} \
this->_command_set->function(tag) = { value }; \
}

◆ ODIL_MESSAGE_MANDATORY_FIELD_STRING_MACRO

#define ODIL_MESSAGE_MANDATORY_FIELD_STRING_MACRO ( name,
tag )
Value:
ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::String, as_string)

◆ ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO

#define ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO ( name,
tag )
Value:
ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::Integer, as_int)
#define ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, TValueType, function)
Definition Message.h:44

◆ ODIL_MESSAGE_OPTIONAL_FIELD_MACRO

#define ODIL_MESSAGE_OPTIONAL_FIELD_MACRO ( name,
tag,
TValueType,
function )
Value:
ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function) \
bool has_##name() const \
{ \
return this->_command_set->has(tag);; \
} \
void delete_##name() \
{ \
this->_command_set->remove(tag); \
}

◆ ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO

#define ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO ( name,
tag )
Value:
ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::String, as_string)

◆ ODIL_MESSAGE_SET_OPTIONAL_FIELD_MACRO

#define ODIL_MESSAGE_SET_OPTIONAL_FIELD_MACRO ( dataset,
name,
tag,
function )
Value:
if(dataset->has(tag)) \
{ \
this->set_##name(dataset->function(tag, 0)); \
}