mummy
1.0.2
|
00001 //---------------------------------------------------------------------------- 00002 // MummyGenerator.h 00003 // 00004 // Author(s) : David Cole 00005 // 00006 // Copyright (C) 2006-2007 Kitware, Inc. 00007 //---------------------------------------------------------------------------- 00008 00009 #ifndef _MummyGenerator_h_ 00010 #define _MummyGenerator_h_ 00011 00012 #include "MummyUtilities.h" // first mummy include for root classes 00013 00014 #include "cableGenerator.h" // parent class 00015 00016 #include "cableContext.h" // enum Context::Access 00017 00018 #include "gxsys/ios/iosfwd" 00019 00020 namespace cable 00021 { 00022 class Class; 00023 class Context; 00024 class FunctionType; 00025 class Method; 00026 class Type; 00027 } 00028 00029 class MummyLineOrientedTextFileReader; 00030 class MummySettings; 00031 00032 //---------------------------------------------------------------------------- 00036 class MummyGenerator : public cable::Generator 00037 { 00038 public: 00039 MummyGenerator(); 00040 virtual ~MummyGenerator(); 00041 00042 //-------------------------------------------------------------------------- 00047 virtual MummySettings* GetSettings(); 00048 00049 //-------------------------------------------------------------------------- 00054 virtual void SetSettings(MummySettings* settings); 00055 00056 //-------------------------------------------------------------------------- 00061 virtual const cable::Class* GetTargetClass(); 00062 00063 //-------------------------------------------------------------------------- 00068 virtual void SetTargetClass(const cable::Class *c); 00069 00070 virtual bool FundamentalTypeIsWrappable(const cable::Type* t); 00071 virtual bool TypeIsWrappable(const cable::Type* t); 00072 virtual bool FunctionTypeIsWrappable(const cable::FunctionType* ft); 00073 virtual bool MethodIsWrappable(const cable::Method* m, const cable::Context::Access& access); 00074 virtual bool ClassIsWrappable(const cable::Class* c); 00075 00076 //-------------------------------------------------------------------------- 00083 virtual MummyLineOrientedTextFileReader* GetHeaderFileReader(const cable::Class* c); 00084 00085 virtual void EmitMummyVersionComments(gxsys_ios::ostream &os, const char *lineCommentString); 00086 00087 private: 00088 MummySettings* Settings; 00089 const cable::Class* TargetClass; 00090 MummyLineOrientedTextFileReader* HeaderFileReader; 00091 00092 MummyGenerator(const MummyGenerator&); //Not implemented 00093 MummyGenerator& operator=(const MummyGenerator&); //Not implemented 00094 }; 00095 00096 #endif