mummy  1.0.3
MummyGenerator.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 // MummyGenerator.h
3 //
4 // Author(s) : David Cole
5 //
6 // Copyright (C) 2006-2007 Kitware, Inc.
7 //----------------------------------------------------------------------------
8 
9 #ifndef _MummyGenerator_h_
10 #define _MummyGenerator_h_
11 
12 #include "MummyUtilities.h" // first mummy include for root classes
13 
14 #include "cableGenerator.h" // parent class
15 
16 #include "cableContext.h" // enum Context::Access
17 
18 #include "gxsys/ios/iosfwd"
19 
20 namespace cable
21 {
22  class Class;
23  class Context;
24  class FunctionType;
25  class Method;
26  class Type;
27 }
28 
30 class MummySettings;
31 
32 //----------------------------------------------------------------------------
36 class MummyGenerator : public cable::Generator
37 {
38 public:
40  virtual ~MummyGenerator();
41 
42  //--------------------------------------------------------------------------
47  virtual MummySettings* GetSettings();
48 
49  //--------------------------------------------------------------------------
54  virtual void SetSettings(MummySettings* settings);
55 
56  //--------------------------------------------------------------------------
61  virtual const cable::Class* GetTargetClass();
62 
63  //--------------------------------------------------------------------------
68  virtual void SetTargetClass(const cable::Class *c);
69 
70  virtual bool FundamentalTypeIsWrappable(const cable::Type* t);
71  virtual bool TypeIsWrappable(const cable::Type* t);
72  virtual bool FunctionTypeIsWrappable(const cable::FunctionType* ft);
73  virtual bool MethodIsWrappable(const cable::Method* m, const cable::Context::Access& access);
74  virtual bool ClassIsWrappable(const cable::Class* c);
75 
76  //--------------------------------------------------------------------------
83  virtual MummyLineOrientedTextFileReader* GetHeaderFileReader(const cable::Class* c);
84 
85  virtual void EmitMummyVersionComments(gxsys_ios::ostream &os, const char *lineCommentString);
86 
87 private:
89  const cable::Class* TargetClass;
91 
92  MummyGenerator(const MummyGenerator&); //Not implemented
93  MummyGenerator& operator=(const MummyGenerator&); //Not implemented
94 };
95 
96 #endif