mummy  1.0.2
MummyCsharpExportLayerGenerator.h
Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00002 // MummyCsharpExportLayerGenerator.h
00003 //
00004 // Author(s) : David Cole
00005 //
00006 // Copyright (C) 2006-2007 Kitware, Inc.
00007 //----------------------------------------------------------------------------
00008 
00009 #include "MummyGenerator.h" // parent class
00010 
00011 #include "gxsys/stl/string"
00012 
00013 class MummyCsharpGenerator;
00014 
00015 class MummyCsharpExportLayerGenerator : public MummyGenerator
00016 {
00017 public:
00018   MummyCsharpExportLayerGenerator();
00019   virtual ~MummyCsharpExportLayerGenerator();
00020 
00021   virtual bool GenerateWrappers();
00022 
00023   virtual MummyCsharpGenerator* GetCsharpGenerator();
00024   virtual void SetCsharpGenerator(MummyCsharpGenerator* generator);
00025 
00026   //virtual bool FundamentalTypeIsWrappable(const cable::Type* t);
00027   //virtual bool TypeIsWrappable(const cable::Type* t);
00028   //virtual bool FunctionTypeIsWrappable(const cable::FunctionType* ft);
00029   //virtual bool MethodIsWrappable(const cable::Method* m, const cable::Context::Access& access);
00030   //virtual bool ClassIsWrappable(const cable::Class* c);
00031 
00032   virtual const char *GetArgName(cable::FunctionType *ftype, unsigned int i);
00033   virtual gxsys_stl::string GetArgTypeAndNameString(cable::Type *argType, const char *name, bool stripConst);
00034   //virtual gxsys_stl::string GetArgTypeAndNameString(cable::FunctionType *ft, const unsigned int i);
00035   virtual gxsys_stl::string GetExportLayerFunctionName(const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname);
00036 
00037   virtual void EmitSpecialHandlingForObjectPointerReturns(gxsys_ios::ostream &os, const gxsys_stl::string& cname, const cable::Method *m, const gxsys_stl::string& mname, const unsigned int indent);
00038   virtual void EmitClassMethodDeclarationForExportLayer(gxsys_ios::ostream &os, const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname, bool emitExceptionParams);
00039   virtual void EmitClassMethodForExportLayer(gxsys_ios::ostream &os, const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname);
00040   virtual void EmitClassForExportLayer(gxsys_ios::ostream &os, const cable::Class *c);
00041 
00042 private:
00043   MummyCsharpGenerator* CsharpGenerator;
00044 
00045   MummyCsharpExportLayerGenerator(const MummyCsharpExportLayerGenerator&); //Not implemented
00046   MummyCsharpExportLayerGenerator& operator=(const MummyCsharpExportLayerGenerator&); //Not implemented
00047 };