mummy  1.0.3
MummySettings.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 // MummySettings.h
3 //
4 // Author(s) : David Cole
5 //
6 // Copyright (C) 2006-2007 Kitware, Inc.
7 //----------------------------------------------------------------------------
8 
9 #include "MummyUtilities.h" // first mummy include for root classes
10 
11 #include "gxsys/stl/string"
12 #include "gxsys/stl/vector"
13 
15 
16 namespace cable
17 {
18  class Class;
19  class SourceRepresentation;
20 }
21 
22 namespace gxsys
23 {
24  class CommandLineArguments;
25 }
26 
27 
28 //----------------------------------------------------------------------------
30 {
31 public:
32  gxsys_stl::string name;
33  gxsys_stl::string pattern;
34  gxsys_stl::string sortkey;
35  gxsys_stl::string defaultFactoryMethod;
37  gxsys_stl::string countedMethodsRegex;
38  gxsys_stl::string defaultDisposalMethod;
39  bool shadow;
40  gxsys_stl::string externalHints;
41  gxsys_stl::string extraExportLayerCode;
42  gxsys_stl::string extraCsharpCode;
43  gxsys_stl::string extraCsharpUnitTestCode;
44  gxsys_stl::string csharpConstructorModifier;
45  gxsys_stl::string registerMethod;
46  gxsys_stl::string unRegisterMethod;
47  gxsys_stl::string getRefCountMethod;
48  gxsys_stl::string registerBaseClass;
49  gxsys_stl::string registerInclude;
50  gxsys_stl::string getMummyTypeEntryMethod;
51  gxsys_stl::string setMummyTypeEntryMethod;
53  gxsys_stl::string beginExcludeRegex;
54  gxsys_stl::string endExcludeRegex;
56  gxsys_stl::string exceptionBaseClass;
57  gxsys_stl::string exceptionCloneMethod;
58  gxsys_stl::string exceptionInclude;
59  gxsys_stl::string wrappedObjectBase;
60 
62  gxsys_stl::string nm = gxsys_stl::string(""),
63  gxsys_stl::string pat = gxsys_stl::string(""),
64  gxsys_stl::string sk = gxsys_stl::string(""),
65  gxsys_stl::string fm = gxsys_stl::string(""),
66  bool edfm = false,
67  gxsys_stl::string cmr = gxsys_stl::string(""),
68  gxsys_stl::string dm = gxsys_stl::string(""),
69  bool sh = false,
70  gxsys_stl::string exH = gxsys_stl::string(""),
71  gxsys_stl::string exEL = gxsys_stl::string(""),
72  gxsys_stl::string exCS = gxsys_stl::string(""),
73  gxsys_stl::string exCSUT = gxsys_stl::string(""),
74  gxsys_stl::string csCM = gxsys_stl::string(""),
75  gxsys_stl::string rm = gxsys_stl::string(""),
76  gxsys_stl::string um = gxsys_stl::string(""),
77  gxsys_stl::string grcm = gxsys_stl::string(""),
78  gxsys_stl::string rbc = gxsys_stl::string(""),
79  gxsys_stl::string ri = gxsys_stl::string(""),
80  gxsys_stl::string gmtem = gxsys_stl::string(""),
81  gxsys_stl::string smtem = gxsys_stl::string(""),
82  bool eml = false,
83  gxsys_stl::string ber = gxsys_stl::string(""),
84  gxsys_stl::string eer = gxsys_stl::string(""),
85  bool partial = false,
86  gxsys_stl::string ebc = gxsys_stl::string(""),
87  gxsys_stl::string ecm = gxsys_stl::string(""),
88  gxsys_stl::string ei = gxsys_stl::string(""),
89  gxsys_stl::string wob = gxsys_stl::string("")
90  ) :
91  name(nm),
92  pattern(pat),
93  sortkey(sk),
94  defaultFactoryMethod(fm),
95  emitDefaultFactoryMethod(edfm),
96  countedMethodsRegex(cmr),
97  defaultDisposalMethod(dm),
98  shadow(sh),
99  externalHints(exH),
100  extraExportLayerCode(exEL),
101  extraCsharpCode(exCS),
102  extraCsharpUnitTestCode(exCSUT),
103  csharpConstructorModifier(csCM),
104  registerMethod(rm),
105  unRegisterMethod(um),
106  getRefCountMethod(grcm),
107  registerBaseClass(rbc),
108  registerInclude(ri),
109  getMummyTypeEntryMethod(gmtem),
110  setMummyTypeEntryMethod(smtem),
111  excludeMarkedLines(eml),
112  beginExcludeRegex(ber),
113  endExcludeRegex(eer),
114  partialClass(partial),
115  exceptionBaseClass(ebc),
116  exceptionCloneMethod(ecm),
117  exceptionInclude(ei),
118  wrappedObjectBase(wob)
119  {
120  }
121 };
122 
123 
124 //----------------------------------------------------------------------------
126 {
127 public:
128  MummySettings();
129  virtual ~MummySettings();
130 
131  virtual int Initialize(int argc, char *argv[]);
132 
133  virtual int ParseSettingsFile(const char *filename);
134  virtual int ProcessSource(cable::SourceRepresentation* sr);
135 
136  static int DisplayHelp(const char* argument, const char* value, void* call_data);
137  static int DisplayVersion(const char* argument, const char* value, void* call_data);
138 
139  virtual const char *GetSettingsFileName();
140  virtual const char *GetCsharpFileName();
141  virtual const char *GetExportLayerFileName();
142  virtual const char *GetCsharpUnitTestFileName();
143  virtual const char *GetGccxmlFileName();
144  virtual const char *GetGroup();
145  virtual const char *GetHeader();
146  virtual const char *GetPackage();
147  virtual const char *GetPackageVersion();
148  virtual bool ShouldRun();
149  virtual bool GetVerbose();
150  virtual gxsys_stl::string GetMummyVersion();
151 
152  virtual void AddUnwrappableClass(const ClassWrappingSettings &cws);
153  virtual void AddWrappableClass(const ClassWrappingSettings &cws);
154  virtual void AddUnwrappablePattern(const ClassWrappingSettings &cws);
155  virtual void AddWrappablePattern(const ClassWrappingSettings &cws);
156  virtual bool FindClassWrappingSettings(const char *name, ClassWrappingSettings* cws);
157 
158  virtual void AddReference(const char *name);
159  virtual void GetReferences(gxsys_stl::vector<gxsys_stl::string>& references);
160 
161  virtual bool ClassIsWrappable(const cable::Class *c);
162 
163  virtual gxsys_stl::string GetCsharpFileName(const cable::Class* c);
164  virtual gxsys_stl::string GetExportLayerFileName(const cable::Class* c);
165  virtual gxsys_stl::string GetCsharpUnitTestFileName(const cable::Class* c);
166  virtual gxsys_stl::string GetCsharpConstructorModifier(const cable::Class* c);
167  virtual gxsys_stl::string GetFactoryMethod(const cable::Class* c);
168  virtual bool GetEmitDefaultFactoryMethod(const cable::Class* c);
169  virtual gxsys_stl::string GetCountedMethodsRegex(const cable::Class* c);
170  virtual gxsys_stl::string GetDisposalMethod(const cable::Class* c);
171  virtual bool GetUseShadow(const cable::Class* c);
172  virtual gxsys_stl::string GetExternalHints(const cable::Class* c);
173  virtual gxsys_stl::string GetExtraCsharpCode(const cable::Class* c);
174  virtual gxsys_stl::string GetExtraExportLayerCode(const cable::Class* c);
175  virtual gxsys_stl::string GetExtraCsharpUnitTestCode(const cable::Class* c);
176  virtual gxsys_stl::string GetRegisterMethod(const cable::Class* c);
177  virtual gxsys_stl::string GetUnRegisterMethod(const cable::Class* c);
178  virtual gxsys_stl::string GetRegisterBaseClass(const cable::Class* c);
179  virtual gxsys_stl::string GetRegisterInclude(const cable::Class* c);
180  virtual bool GetPartialClass(const cable::Class* c);
181 
182 private:
183  void AddArgumentHandlers(gxsys::CommandLineArguments& arguments);
184  void Reset();
185 
187 };
virtual bool ClassIsWrappable(const cable::Class *c)
virtual ~MummySettings()
virtual const char * GetHeader()
virtual gxsys_stl::string GetMummyVersion()
virtual void AddUnwrappablePattern(const ClassWrappingSettings &cws)
gxsys_stl::string getMummyTypeEntryMethod
Definition: MummySettings.h:50
virtual gxsys_stl::string GetExtraCsharpUnitTestCode(const cable::Class *c)
gxsys_stl::string registerMethod
Definition: MummySettings.h:45
gxsys_stl::string csharpConstructorModifier
Definition: MummySettings.h:44
gxsys_stl::string countedMethodsRegex
Definition: MummySettings.h:37
ClassWrappingSettings(gxsys_stl::string nm=gxsys_stl::string(""), gxsys_stl::string pat=gxsys_stl::string(""), gxsys_stl::string sk=gxsys_stl::string(""), gxsys_stl::string fm=gxsys_stl::string(""), bool edfm=false, gxsys_stl::string cmr=gxsys_stl::string(""), gxsys_stl::string dm=gxsys_stl::string(""), bool sh=false, gxsys_stl::string exH=gxsys_stl::string(""), gxsys_stl::string exEL=gxsys_stl::string(""), gxsys_stl::string exCS=gxsys_stl::string(""), gxsys_stl::string exCSUT=gxsys_stl::string(""), gxsys_stl::string csCM=gxsys_stl::string(""), gxsys_stl::string rm=gxsys_stl::string(""), gxsys_stl::string um=gxsys_stl::string(""), gxsys_stl::string grcm=gxsys_stl::string(""), gxsys_stl::string rbc=gxsys_stl::string(""), gxsys_stl::string ri=gxsys_stl::string(""), gxsys_stl::string gmtem=gxsys_stl::string(""), gxsys_stl::string smtem=gxsys_stl::string(""), bool eml=false, gxsys_stl::string ber=gxsys_stl::string(""), gxsys_stl::string eer=gxsys_stl::string(""), bool partial=false, gxsys_stl::string ebc=gxsys_stl::string(""), gxsys_stl::string ecm=gxsys_stl::string(""), gxsys_stl::string ei=gxsys_stl::string(""), gxsys_stl::string wob=gxsys_stl::string(""))
Definition: MummySettings.h:61
virtual void AddWrappableClass(const ClassWrappingSettings &cws)
virtual const char * GetGccxmlFileName()
virtual gxsys_stl::string GetExtraExportLayerCode(const cable::Class *c)
virtual const char * GetExportLayerFileName()
virtual int Initialize(int argc, char *argv[])
gxsys_stl::string sortkey
Definition: MummySettings.h:34
gxsys_stl::string setMummyTypeEntryMethod
Definition: MummySettings.h:51
gxsys_stl::string getRefCountMethod
Definition: MummySettings.h:47
virtual gxsys_stl::string GetDisposalMethod(const cable::Class *c)
static int DisplayVersion(const char *argument, const char *value, void *call_data)
gxsys_stl::string exceptionCloneMethod
Definition: MummySettings.h:57
virtual void AddReference(const char *name)
static int DisplayHelp(const char *argument, const char *value, void *call_data)
gxsys_stl::string beginExcludeRegex
Definition: MummySettings.h:53
virtual bool ShouldRun()
MummySettingsInternals * Internals
virtual const char * GetCsharpUnitTestFileName()
virtual int ParseSettingsFile(const char *filename)
gxsys_stl::string exceptionInclude
Definition: MummySettings.h:58
gxsys_stl::string extraExportLayerCode
Definition: MummySettings.h:41
virtual bool GetPartialClass(const cable::Class *c)
gxsys_stl::string registerInclude
Definition: MummySettings.h:49
gxsys_stl::string registerBaseClass
Definition: MummySettings.h:48
virtual void GetReferences(gxsys_stl::vector< gxsys_stl::string > &references)
gxsys_stl::string unRegisterMethod
Definition: MummySettings.h:46
void AddArgumentHandlers(gxsys::CommandLineArguments &arguments)
virtual gxsys_stl::string GetCsharpConstructorModifier(const cable::Class *c)
gxsys_stl::string extraCsharpCode
Definition: MummySettings.h:42
virtual bool GetVerbose()
gxsys_stl::string defaultDisposalMethod
Definition: MummySettings.h:38
virtual int ProcessSource(cable::SourceRepresentation *sr)
gxsys_stl::string pattern
Definition: MummySettings.h:33
virtual const char * GetCsharpFileName()
virtual gxsys_stl::string GetRegisterInclude(const cable::Class *c)
virtual const char * GetGroup()
virtual gxsys_stl::string GetFactoryMethod(const cable::Class *c)
virtual const char * GetPackage()
gxsys_stl::string name
Definition: MummySettings.h:32
virtual gxsys_stl::string GetUnRegisterMethod(const cable::Class *c)
virtual void AddWrappablePattern(const ClassWrappingSettings &cws)
gxsys_stl::string defaultFactoryMethod
Definition: MummySettings.h:35
virtual gxsys_stl::string GetExtraCsharpCode(const cable::Class *c)
gxsys_stl::string wrappedObjectBase
Definition: MummySettings.h:59
virtual const char * GetSettingsFileName()
gxsys_stl::string endExcludeRegex
Definition: MummySettings.h:54
virtual gxsys_stl::string GetRegisterMethod(const cable::Class *c)
virtual const char * GetPackageVersion()
virtual gxsys_stl::string GetRegisterBaseClass(const cable::Class *c)
gxsys_stl::string exceptionBaseClass
Definition: MummySettings.h:56
virtual bool FindClassWrappingSettings(const char *name, ClassWrappingSettings *cws)
virtual gxsys_stl::string GetCountedMethodsRegex(const cable::Class *c)
gxsys_stl::string extraCsharpUnitTestCode
Definition: MummySettings.h:43
virtual bool GetEmitDefaultFactoryMethod(const cable::Class *c)
gxsys_stl::string externalHints
Definition: MummySettings.h:40
virtual gxsys_stl::string GetExternalHints(const cable::Class *c)
virtual bool GetUseShadow(const cable::Class *c)
virtual void AddUnwrappableClass(const ClassWrappingSettings &cws)