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),
98  shadow(sh),
99  externalHints(exH),
100  extraExportLayerCode(exEL),
101  extraCsharpCode(exCS),
102  extraCsharpUnitTestCode(exCSUT),
104  registerMethod(rm),
105  unRegisterMethod(um),
106  getRefCountMethod(grcm),
107  registerBaseClass(rbc),
108  registerInclude(ri),
111  excludeMarkedLines(eml),
112  beginExcludeRegex(ber),
113  endExcludeRegex(eer),
114  partialClass(partial),
115  exceptionBaseClass(ebc),
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 };