mummy  1.0.2
MummyGenerator.h
Go to the documentation of this file.
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