From 442a7a4e5d742705c91f37612d8e1b61fd24aa8e Mon Sep 17 00:00:00 2001 From: crouzet Date: Tue, 2 Oct 2007 13:53:00 +0000 Subject: [PATCH] add support for MEDMEM::SUPPORT type --- scripts/parse3.awk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/parse3.awk b/scripts/parse3.awk index 315e1ee..620587b 100644 --- a/scripts/parse3.awk +++ b/scripts/parse3.awk @@ -33,6 +33,8 @@ BEGIN { idl_arg_type["std::string&"]="out string" idl_arg_type["const MEDMEM::MESH&"]="in SALOME_MED::MESH" idl_arg_type["const MEDMEM::MESH*"]="in SALOME_MED::MESH" + idl_arg_type["const MEDMEM::SUPPORT&"]="in SALOME_MED::SUPPORT" + idl_arg_type["const MEDMEM::SUPPORT*"]="in SALOME_MED::SUPPORT" idl_arg_type["const MEDMEM::FIELD*"]="in SALOME_MED::FIELDDOUBLE" idl_arg_type["const MEDMEM::FIELD&"]="in SALOME_MED::FIELDDOUBLE" idl_arg_type["MEDMEM::FIELD*&"]="out SALOME_MED::FIELDDOUBLE" @@ -62,6 +64,7 @@ BEGIN { idl_rtn_type["MEDMEM::MESH&"]="SALOME_MED::MESH" idl_rtn_type["MEDMEM::MESH*"]="SALOME_MED::MESH" idl_rtn_type["const MEDMEM::MESH*"]="SALOME_MED::MESH" + idl_rtn_type["MEDMEM::SUPPORT*"]="SALOME_MED::SUPPORT" idl_rtn_type["const MEDMEM::FIELD*"]="SALOME_MED::FIELDDOUBLE" idl_rtn_type["MEDMEM::FIELD*"]="SALOME_MED::FIELDDOUBLE" idl_rtn_type["MEDMEM::FIELD&"]="SALOME_MED::FIELDDOUBLE" @@ -90,6 +93,7 @@ BEGIN { idl_impl_hxx["out unsigned long"]="CORBA::ULong_out" idl_impl_hxx["out string"]="CORBA::String_out" idl_impl_hxx["in SALOME_MED::MESH"]="SALOME_MED::MESH_ptr" + idl_impl_hxx["in SALOME_MED::SUPPORT"]="SALOME_MED::SUPPORT_ptr" idl_impl_hxx["in SALOME_MED::FIELDDOUBLE"]="SALOME_MED::FIELDDOUBLE_ptr" idl_impl_hxx["out SALOME_MED::FIELDDOUBLE"]="SALOME_MED::FIELDDOUBLE_out" idl_impl_hxx["in SALOME::SenderDouble"]="SALOME::SenderDouble_ptr" @@ -105,6 +109,7 @@ BEGIN { idl_impl_hxx["unsigned long"]="CORBA::ULong" idl_impl_hxx["string"]="char*" idl_impl_hxx["SALOME_MED::MESH"]="SALOME_MED::MESH_ptr" + idl_impl_hxx["SALOME_MED::SUPPORT"]="SALOME_MED::SUPPORT_ptr" idl_impl_hxx["SALOME_MED::FIELDDOUBLE"]="SALOME_MED::FIELDDOUBLE_ptr" idl_impl_hxx["SALOME::SenderDouble"]="SALOME::SenderDouble_ptr" idl_impl_hxx["SALOME::Matrix"]="SALOME::Matrix_ptr" @@ -131,6 +136,8 @@ BEGIN { cpp_impl_a["std::string&"]="std::string _%s;\n" cpp_impl_a["const MEDMEM::MESH&"]="\tMEDMEM::MESHClient* _%s = new MEDMEM::MESHClient(%s);\n" # MESHClient cannot be created on the stack (private constructor), so we create it on the heap and dereference it later (in treatment 4) cpp_impl_a["const MEDMEM::MESH*"]="\tMEDMEM::MESHClient* _%s = new MEDMEM::MESHClient(%s);\n" + cpp_impl_a["const MEDMEM::SUPPORT&"]="\tMEDMEM::SUPPORTClient* _%s = new MEDMEM::SUPPORTClient(%s);\n" # SUPPORTClient cannot be created on the stack (protected destructor), so we create it on the heap and dereference it later (in treatment 4) + cpp_impl_a["const MEDMEM::SUPPORT*"]="\tMEDMEM::SUPPORTClient* _%s = new MEDMEM::SUPPORTClient(%s);\n" cpp_impl_a["MEDMEM::FIELD*&"]="\tMEDMEM::FIELD* _%s;\n" cpp_impl_a["const MEDMEM::FIELD*"]="\tstd::auto_ptr > _%s ( new MEDMEM::FIELDClient(%s) );\n" cpp_impl_a["const MEDMEM::FIELD&"]="\tMEDMEM::FIELDClient _%s(%s);\n" @@ -175,6 +182,9 @@ BEGIN { cpp_impl_b["const MEDMEM::MESH*"]=\ "\tMEDMEM::MESH_i * _rtn_mesh_i = new MEDMEM::MESH_i(const_cast(_rtn_cpp));\n"\ "\tSALOME_MED::MESH_ptr _rtn_ior = _rtn_mesh_i->_this();\n" + cpp_impl_b["MEDMEM::SUPPORT*"]=\ + "\tMEDMEM::SUPPORT_i * _rtn_support_i = new MEDMEM::SUPPORT_i(_rtn_cpp);\n"\ + "\tSALOME_MED::SUPPORT_ptr _rtn_ior = _rtn_support_i->_this();\n" cpp_impl_b["const MEDMEM::FIELD*"]=\ "\tMEDMEM::FIELDTEMPLATE_I * _rtn_field_i = new MEDMEM::FIELDTEMPLATE_I(const_cast*>(_rtn_cpp),false);\n"\ "\tSALOME_MED::FIELDDOUBLE_ptr _rtn_ior = _rtn_field_i->_this();\n" @@ -233,6 +243,8 @@ BEGIN { cpp_impl_c["unsigned&"]="\t%s = _%s;\n" cpp_impl_c["const MEDMEM::MESH&"]="\t_%s->removeReference();\n" cpp_impl_c["const MEDMEM::MESH*"]="\t_%s->removeReference();\n" + cpp_impl_c["const MEDMEM::SUPPORT&"]="\t_%s->removeReference();\n" + cpp_impl_c["const MEDMEM::SUPPORT*"]="\t_%s->removeReference();\n" # # # record sep is ");\n" whith blanks all around, and optional "(" at the beginning @@ -362,7 +374,7 @@ BEGIN { pre="" if ( cpp_impl_a[type[i]] ~ "auto_ptr" ) post=".get()" # for auto_ptr argument, retrieve the raw pointer behind - if ( type[i] == "const MEDMEM::MESH&" ) + if ( type[i] == "const MEDMEM::MESH&" || type[i] == "const MEDMEM::SUPPORT&" ) pre="*" # we cannot create MESHClient on the stack (private constructor), so we create it on the heap and dereference it if ( i < NF ) post=post"," # separator between arguments -- 2.39.2