mummy  1.0.3
MummyCsharpExportLayerGenerator.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 // MummyCsharpExportLayerGenerator.h
3 //
4 // Author(s) : David Cole
5 //
6 // Copyright (C) 2006-2007 Kitware, Inc.
7 //----------------------------------------------------------------------------
8 
9 #include "MummyGenerator.h" // parent class
10 
11 #include "gxsys/stl/string"
12 
14 
16 {
17 public:
20 
21  virtual bool GenerateWrappers();
22 
24  virtual void SetCsharpGenerator(MummyCsharpGenerator* generator);
25 
26  //virtual bool FundamentalTypeIsWrappable(const cable::Type* t);
27  //virtual bool TypeIsWrappable(const cable::Type* t);
28  //virtual bool FunctionTypeIsWrappable(const cable::FunctionType* ft);
29  //virtual bool MethodIsWrappable(const cable::Method* m, const cable::Context::Access& access);
30  //virtual bool ClassIsWrappable(const cable::Class* c);
31 
32  virtual const char *GetArgName(cable::FunctionType *ftype, unsigned int i);
33  virtual gxsys_stl::string GetArgTypeAndNameString(cable::Type *argType, const char *name, bool stripConst);
34  //virtual gxsys_stl::string GetArgTypeAndNameString(cable::FunctionType *ft, const unsigned int i);
35  virtual gxsys_stl::string GetExportLayerFunctionName(const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname);
36 
37  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);
38  virtual void EmitClassMethodDeclarationForExportLayer(gxsys_ios::ostream &os, const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname, bool emitExceptionParams);
39  virtual void EmitClassMethodForExportLayer(gxsys_ios::ostream &os, const cable::Class *c, const cable::Method *m, const gxsys_stl::string& mname);
40  virtual void EmitClassForExportLayer(gxsys_ios::ostream &os, const cable::Class *c);
41 
42 private:
44 
47 };