mummy
1.0.2
|
00001 //---------------------------------------------------------------------------- 00002 // MummyCsharpShadowLayerGenerator.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 #include "gxsys/stl/vector" 00013 00014 class MummyCsharpGenerator; 00015 00016 class MummyCsharpShadowLayerGenerator : public MummyGenerator 00017 { 00018 public: 00019 MummyCsharpShadowLayerGenerator(); 00020 virtual ~MummyCsharpShadowLayerGenerator(); 00021 00022 virtual bool GenerateWrappers(); 00023 00024 virtual MummyCsharpGenerator* GetCsharpGenerator(); 00025 virtual void SetCsharpGenerator(MummyCsharpGenerator* generator); 00026 00027 virtual const char *GetArgName(cable::FunctionType *ftype, unsigned int i); 00028 00029 virtual void EmitClassMethodDeclarationForShadowLayer(gxsys_ios::ostream &os, const cable::Class *c, const cable::Method *m, const unsigned int index, int indent, const char* implClassName); 00030 virtual void EmitClassDeclarationForShadowLayer(gxsys_ios::ostream &os, const cable::Class *c, const gxsys_stl::vector<cable::Method*>& wrapped_methods, cable::Method* factoryM, cable::Method* disposalM, cable::Method* registerM, cable::Method* unRegisterM); 00031 virtual void EmitClassImplementationForShadowLayer(gxsys_ios::ostream &os, const cable::Class *c, const gxsys_stl::vector<cable::Method*>& wrapped_methods, cable::Method* factoryM, cable::Method* disposalM, cable::Method* registerM, cable::Method* unRegisterM); 00032 virtual void EmitClassForShadowLayer(gxsys_ios::ostream &os, const cable::Class *c); 00033 00034 private: 00035 MummyCsharpGenerator* CsharpGenerator; 00036 00037 MummyCsharpShadowLayerGenerator(const MummyCsharpShadowLayerGenerator&); //Not implemented 00038 MummyCsharpShadowLayerGenerator& operator=(const MummyCsharpShadowLayerGenerator&); //Not implemented 00039 };