mummy
1.0.2
|
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 };