@@ -632,19 +632,45 @@ def parameter(self, enable_count=False, **kwargs):
632632@Type .add_type ('REQUEST_CONST' , abi_type = ['standard' ])
633633class TypeConstRequestStandard (TypeRequestStandard ):
634634
635+ @property
636+ def init_code (self ):
637+ if self .count_param is None :
638+ code = [f'MPI_Request { self .tmpname } = { ConvertFuncs .REQUEST } ({ self .name } );' ]
639+ else :
640+ code = [f'int size_{ self .tmpname } = { self .count_param } ;' ]
641+ code .append (f'MPI_Request *{ self .tmpname } = (MPI_Request *)malloc(sizeof(MPI_Request) * size_{ self .tmpname } );' )
642+ code .append (f'for(int i=0;i<size_{ self .tmpname } ;i++){{' )
643+ code .append (f'{ self .tmpname } [i] = { ConvertFuncs .REQUEST } ({ self .name } [i]);' )
644+ code .append (f'}}' )
645+ return code
646+
647+ @property
648+ def final_code (self ):
649+ if self .count_param is not None :
650+ code = [f'free({ self .tmpname } );' ]
651+ return code
652+
635653 def type_text (self , enable_count = False ):
636654 name = self .mangle_name ('MPI_Request' )
637- return f'const { name } '
655+ return f'const { name } * '
638656
639657 @property
640658 def argument (self ):
641- return f'(MPI_Request) { self .name } '
659+ return f'(MPI_Request * ) { self .tmpname } '
642660
643661 def tmp_type_text (self , enable_count = False ):
644662 return 'MPI_Request'
645663
646664 def return_code (self , name ):
647665 return [f'return { ConvertOMPIToStandard .REQUEST } ({ name } );' ]
666+
667+ def parameter (self , enable_count = False , ** kwargs ):
668+ type_name = self .mangle_name ('MPI_Request' )
669+ if self .count_param is None :
670+ return f'const { type_name } *{ self .name } '
671+ else :
672+ return f'const { type_name } { self .name } []'
673+
648674
649675@Type .add_type ('REQUEST_INOUT' , abi_type = ['ompi' ])
650676class TypeRequestInOut (Type ):
0 commit comments