MeVisLab Toolbox Reference
DCMTree_TagId.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #ifndef DCM_TREE_TAG_ID_H
14 #define DCM_TREE_TAG_ID_H
15 
16 #ifdef _MSC_VER
17  #pragma warning (push)
18  #pragma warning (disable : 4350)
19 #endif
20 
21 #include <istream>
22 #include <ostream>
23 
24 #include <string>
25 
26 #include "DCMTree_Lib.h"
27 #include "DCMTree_Serialization.h"
28 
29 #ifdef _MSC_VER
30  #pragma warning (pop)
31 #endif
32 
33 
34 namespace DCMTree
35 {
40  {
41  public:
43  TagId();
44 
46  TagId (RawTagId rawid);
47 
49  TagId (const TagId &other);
50 
52  TagId (unsigned short groupid,unsigned short elementid);
53 
60  TagId (std::string tidstr);
61 
63  ~TagId() override;
64 
65  // helpers
66  static TagIdPtr create(RawTagId rawid);
67  static TagIdPtr create(const TagId &other);
68  static TagIdPtr create(unsigned short groupid,unsigned short elementid);
69  static TagIdPtr create(std::string tidstr);
70 
72  TagId &operator= (const TagId &other);
73 
75  bool operator==(const TagId &other) const;
76 
78  bool operator!=(const TagId &other) const;
79 
81  bool operator>(const TagId &other) const;
82 
84  bool operator<(const TagId &other) const;
85 
87  bool operator>=(const TagId &other) const;
88 
90  bool operator<=(const TagId &other) const;
91 
93  operator RawTagId() const;
94 
96  operator RawTagId&();
97 
99  unsigned short groupId() const;
100 
102  unsigned short elementId() const;
103 
105  bool isPrivate() const;
106 
108  bool isPrivateCreator() const;
109 
114  RawTagId privateTag( unsigned short slot ) const;
115 
117  RawTagId rawId() const;
118 
121 
123  std::string toString() const;
124 
128  void fromStream (std::istream &in);
129 
133  void toStream (std::ostream &out) const;
134 
135  void serializeX (DCMTree_Serialization::Sink &sink) const override;
137 
141  static inline bool isPrivateTag( RawTagId id );
142 
143  private:
144  RawTagId _id;
145  };
146 
147  inline bool TagId::isPrivateTag( RawTagId id )
148  {
149  return (id & 0x10000) != 0;
150  }
151 
152  inline std::ostream &operator << (std::ostream &out,const TagId &t)
153  {
154  t.toStream (out);
155  return out;
156  }
157 
158  inline std::istream &operator >> (std::istream &in,TagId &t)
159  {
160  t.fromStream (in);
161  return in;
162  }
163 }
164 
165 #endif
166 
#define DCMTREE_EXPORT
Class to wrap a tag-id.
Definition: DCMTree_TagId.h:40
RawTagId rawId() const
access the raw value
std::string toString() const
convert this to a string of the form (groupid,elementid)
static bool isPrivateTag(RawTagId id)
Returns true if the given tag ID belongs to a private tag.
TagId()
ctor - sets the id to (0000,0000)
bool operator>(const TagId &other) const
is-bigger-than operator
TagId(std::string tidstr)
ctor - create a new instance by conversion from the given string accepts string of the form t*H*t*,...
static TagIdPtr create(const TagId &other)
bool operator>=(const TagId &other) const
if-bigger-than-or-equal operator
bool operator<=(const TagId &other) const
if-smaller-than-or-equal operator
bool isPrivate() const
check if this id identifies a private tag (groupid is odd)
unsigned short elementId() const
get the lower word of the id -> element-identifier
TagId(unsigned short groupid, unsigned short elementid)
ctor - create a new instance with id (groupid,elementid)
static TagIdPtr create(unsigned short groupid, unsigned short elementid)
unsigned short groupId() const
get the upper word of the id -> group-identifier
RawTagId privateTag(unsigned short slot) const
Returns the tag ID of the corresponding private tag with the given slot.
void deserializeX(DCMTree_Serialization::Source &source) override
Overwrites data of this object with data from Source.
bool isPrivateCreator() const
check if this id identifies a private creator tag
~TagId() override
dtor
void fromStream(std::istream &in)
extract this instance from the given stream
TagId(const TagId &other)
copy ctor
bool operator!=(const TagId &other) const
is-not-equal operator
void toStream(std::ostream &out) const
copy this instance recursively into the given stream
void serializeX(DCMTree_Serialization::Sink &sink) const override
Writes data of this object to Sink.
TagId(RawTagId rawid)
ctor - initialize to the given value
static TagIdPtr create(RawTagId rawid)
bool operator<(const TagId &other) const
is-less-than operator
bool operator==(const TagId &other) const
is-equal operator
RawTagId & rawId()
access the raw value
static TagIdPtr create(std::string tidstr)
Interface which provides a method to deserialize an object.
Interface which provides a method to serialize an object.
Interface of a data sink for the serialization of objects.
Interface of a data source for the deserialization of objects.
class to dump a DCMTree dicom message into a human readable file this class could be used as a starte...
std::istream & operator>>(std::istream &in, Message &m)
boost::shared_ptr< TagId > TagIdPtr
Definition: DCMTree_Lib.h:144
unsigned int RawTagId
Definition: DCMTree_Lib.h:147
std::ostream & operator<<(std::ostream &out, const Message &m)
boost::graph_traits< ml_graph_ptr >::vertex_descriptor source(graph_traits< ml_graph_ptr >::edge_descriptor e, const ml_graph_ptr)
Returns the vertex descriptor for u of the edge (u,v) represented by e.