Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef GDCMPDBHEADER_H
00016 #define GDCMPDBHEADER_H
00017
00018 #include "gdcmTypes.h"
00019 #include "gdcmDataSet.h"
00020 #include "gdcmPDBElement.h"
00021
00022 namespace gdcm
00023 {
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 class DataElement;
00035 class PrivateTag;
00052 class GDCM_EXPORT PDBHeader
00053 {
00054 friend std::ostream& operator<<(std::ostream &_os, const PDBHeader &d);
00055 public :
00056 PDBHeader() {}
00057 ~PDBHeader() {}
00058
00060 bool LoadFromDataElement(DataElement const &de);
00061
00063 void Print(std::ostream &os) const;
00064
00066 static const PrivateTag & GetPDBInfoTag();
00067
00070 const PDBElement &GetPDBElementByName(const char *name);
00071
00073 bool FindPDBElementByName(const char *name);
00074
00075 protected:
00076 const PDBElement& GetPDBEEnd() const;
00077
00078 private:
00079 int readprotocoldatablock(const char *input, size_t inputlen, bool verbose);
00080 std::vector<PDBElement> InternalPDBDataSet;
00081 static PDBElement PDBEEnd;
00082 };
00083
00084 inline std::ostream& operator<<(std::ostream &os, const PDBHeader &d)
00085 {
00086 d.Print( os );
00087 return os;
00088 }
00089
00090 }
00091
00092 #endif //GDCMPDBHEADER_H