Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GDCMDICTCONVERTER_H
00017 #define GDCMDICTCONVERTER_H
00018
00019 #include "gdcmTypes.h"
00020 #include "gdcmVR.h"
00021 #include "gdcmVM.h"
00022
00023 #include <string>
00024
00025 namespace gdcm
00026 {
00027
00028 class DictConverterInternal;
00036 class GDCM_EXPORT DictConverter
00037 {
00038 public:
00039 DictConverter();
00040 ~DictConverter();
00041 void SetInputFileName(const char* filename);
00042 const std::string &GetInputFilename() const;
00043 void SetOutputFileName(const char* filename);
00044 const std::string &GetOutputFilename() const;
00045
00046 int GetOutputType() const {
00047 return OutputType;
00048 }
00049 void SetOutputType(int type) {
00050 OutputType = type;
00051 }
00052 const std::string &GetDictName() const;
00053 void SetDictName(const char *name);
00054
00055 void Convert();
00056
00057
00058
00059 static bool ReadVR(const char *raw, VR::VRType &type);
00060 static bool ReadVM(const char *raw, VM::VMType &type);
00061 static bool Readuint16(const char *raw, uint16_t &ov);
00062
00063 enum OutputTypes {
00064 DICT_DEFAULT = 0,
00065 DICT_DEBUG,
00066 DICT_XML
00067 };
00068
00069 protected:
00070 void WriteHeader();
00071 void WriteFooter();
00072 bool ConvertToXML(const char *raw, std::string &cxx);
00073 bool ConvertToCXX(const char *raw, std::string &cxx);
00074 void AddGroupLength();
00075
00076 private:
00077 DictConverterInternal *Internal;
00078
00079 int OutputType;
00080 };
00081
00082 }
00083
00084 #endif //GDCMDICTCONVERTER_H