File: gdcmTableReader.h

package info (click to toggle)
gdcm 2.2.0-14.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 31,828 kB
  • sloc: cpp: 159,587; ansic: 124,519; xml: 44,180; sh: 7,019; python: 3,618; cs: 1,297; lex: 1,290; java: 1,242; tcl: 677; php: 111; makefile: 108
file content (103 lines) | stat: -rw-r--r-- 3,045 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*=========================================================================

  Program: GDCM (Grassroots DICOM). A DICOM library

  Copyright (c) 2006-2011 Mathieu Malaterre
  All rights reserved.
  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
#ifndef GDCMTABLEREADER_H
#define GDCMTABLEREADER_H

#include "gdcmTypes.h"
#include "gdcmDefs.h"
//#include "gdcmModule.h"
//#include "gdcmIOD.h"
//#include "gdcmIODs.h"
//#include "gdcmModules.h"

#include <string>
#include <vector>
#include <map>

namespace gdcm
{
/**
 * \brief Class for representing a TableReader
 * \note This class is an empty shell meant to be derived
 */
class GDCM_EXPORT TableReader
{
public:
  TableReader(Defs &defs):CurrentDefs(defs),ParsingModule(false),ParsingModuleEntry(false),
  ParsingModuleEntryDescription(false),
  ParsingMacro(false),
  ParsingMacroEntry(false),
  ParsingMacroEntryDescription(false),
  ParsingIOD(false),
  ParsingIODEntry(false),
  Description() {}
  virtual ~TableReader() {}

  // Set/Get filename
  void SetFilename(const char *filename) { Filename = filename; }
  const char *GetFilename() { return Filename.c_str(); }

  int Read();

//protected:
  // You need to override those function in your subclasses:
  virtual void StartElement(const char *name, const char **atts);
  virtual void EndElement(const char *name);
  virtual void CharacterDataHandler(const char *data, int length);

void HandleModuleEntry(const char **atts);
void HandleModule(const char **atts);
void HandleModuleEntryDescription(const char **atts);
void HandleMacroEntry(const char **atts);
void HandleMacro(const char **atts);
void HandleMacroEntryDescription(const char **atts);
void HandleModuleInclude(const char **atts);
void HandleIODEntry(const char **atts);
void HandleIOD(const char **atts);

  //const Modules & GetModules() const { return CurrentModules; }
  //const Macros & GetMacros() const { return CurrentMacros; }
  //const IODs & GetIODs() const { return CurrentIODs; }
  const Defs & GetDefs() const { return CurrentDefs; }

private:
  std::string Filename;
  Defs &CurrentDefs;
  //Macros CurrentMacros;
  //Modules CurrentModules;
  //IODs CurrentIODs;
  Macro CurrentMacro;
  Module CurrentModule;
  IOD CurrentIOD;
  MacroEntry CurrentMacroEntry;
  ModuleEntry CurrentModuleEntry;
  IODEntry CurrentIODEntry;
  std::string CurrentModuleName;
  std::string CurrentModuleRef;
  std::string CurrentMacroRef;
  bool ParsingModule;
  bool ParsingModuleEntry;
  bool ParsingModuleEntryDescription;
  bool ParsingMacro;
  bool ParsingMacroEntry;
  bool ParsingMacroEntryDescription;
  bool ParsingIOD;
  bool ParsingIODEntry;
  Tag CurrentTag;
  std::string Description;
};

} // end namespace gdcm

#endif //GDCMTABLEREADER_H