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
virtual MummyLineOrientedTextFileReader * GetHeaderFileReader(const cable::Class *c)
Get or create a header file reader. Only uses class 'c' on the first call. Subsequent calls retrieve ...
virtual bool FundamentalTypeIsWrappable(const cable::Type *t)
virtual bool TypeIsWrappable(const cable::Type *t)
const cable::Class * TargetClass
virtual ~MummyGenerator()
virtual void SetTargetClass(const cable::Class *c)
Set the current target class.
MummyLineOrientedTextFileReader * HeaderFileReader
virtual bool FunctionTypeIsWrappable(const cable::FunctionType *ft)
virtual void SetSettings(MummySettings *settings)
Set the associated settings object.
virtual bool MethodIsWrappable(const cable::Method *m, const cable::Context::Access &access)
virtual const cable::Class * GetTargetClass()
Get the current target class.
MummySettings * Settings
Class that reads a text file and caches its lines and information about those lines for quick queries...
Base class for all Mummy generators.
virtual void EmitMummyVersionComments(gxsys_ios::ostream &os, const char *lineCommentString)
virtual bool ClassIsWrappable(const cable::Class *c)
MummyGenerator & operator=(const MummyGenerator &)
virtual MummySettings * GetSettings()
Get the associated settings object.