@@ -111,7 +111,7 @@ def type_text(self, enable_count=False):
111111
112112
113113@Type .add_type ('COUNT_ARRAY' )
114- class TypeCount (Type ):
114+ class TypeCountArray (Type ):
115115 """Array of counts (either int or MPI_Count)."""
116116
117117 @property
@@ -127,7 +127,7 @@ def parameter(self, enable_count=False):
127127
128128
129129@Type .add_type ('DISPL_ARRAY' )
130- class TypeCount (Type ):
130+ class TypeDisplArray (Type ):
131131
132132 @property
133133 def is_count (self ):
@@ -142,19 +142,26 @@ def parameter(self, enable_count=False):
142142
143143
144144@Type .add_type ('INT' )
145- class TypeBufferOut (Type ):
145+ class TypeInt (Type ):
146146
147147 def type_text (self , enable_count = False ):
148148 return 'int'
149149
150150
151151@Type .add_type ('AINT' )
152- class TypeBufferOut (Type ):
152+ class TypeAint (Type ):
153153
154154 def type_text (self , enable_count = False ):
155155 return 'MPI_Aint'
156156
157157
158+ @Type .add_type ('AINT_OUT' )
159+ class TypeAintOut (Type ):
160+
161+ def type_text (self , enable_count = False ):
162+ return 'MPI_Aint *'
163+
164+
158165@Type .add_type ('INT_OUT' )
159166class TypeBufferOut (Type ):
160167
@@ -168,6 +175,13 @@ def parameter(self, enable_count=False, **kwargs):
168175 return f'int { self .name } []'
169176
170177
178+ @Type .add_type ('OFFSET_OUT' )
179+ class TypeOffsetOut (Type ):
180+
181+ def type_text (self , enable_count = False ):
182+ return 'MPI_Offset *{self.name}'
183+
184+
171185@Type .add_type ('DOUBLE' )
172186class TypeDouble (Type ):
173187
@@ -491,6 +505,43 @@ def type_text(self, enable_count=False):
491505 return self .mangle_name ('MPI_Info' )
492506
493507
508+ @Type .add_type ('INFO_OUT' , abi_type = ['ompi' ])
509+ class TypeInfoOut (Type ):
510+
511+ def type_text (self , enable_count = False ):
512+ return 'MPI_Info *'
513+
514+
515+ @Type .add_type ('INFO_OUT' , abi_type = ['standard' ])
516+ class TypeInfoOutStandard (Type ):
517+
518+ @property
519+ def argument (self ):
520+ return f'(MPI_Info *) { self .name } '
521+
522+ def type_text (self , enable_count = False ):
523+ type_name = self .mangle_name ('MPI_Info' )
524+ return f'{ type_name } *'
525+
526+
527+ @Type .add_type ('FILE' , abi_type = ['ompi' ])
528+ class TypeFile (Type ):
529+
530+ def type_text (self , enable_count = False ):
531+ return 'MPI_File'
532+
533+
534+ @Type .add_type ('FILE' , abi_type = ['standard' ])
535+ class TypeFileStandard (Type ):
536+
537+ @property
538+ def argument (self ):
539+ return f'(MPI_File) { self .name } '
540+
541+ def type_text (self , enable_count = False ):
542+ return self .mangle_name ('MPI_File' )
543+
544+
494545@Type .add_type ('FILE_OUT' , abi_type = ['ompi' ])
495546class TypeFileOut (Type ):
496547
@@ -512,3 +563,103 @@ def final_code(self):
512563 def type_text (self , enable_count = False ):
513564 type_name = self .mangle_name ('MPI_File' )
514565 return f'{ type_name } *'
566+
567+
568+ @Type .add_type ('MESSAGE_OUT' , abi_type = ['ompi' ])
569+ class TypeMessageOut (Type ):
570+
571+ def type_text (self , enable_count = False ):
572+ return 'MPI_Message *'
573+
574+
575+ @Type .add_type ('MESSAGE_OUT' , abi_type = ['standard' ])
576+ class TypeMessageOutStandard (Type ):
577+
578+ @property
579+ def argument (self ):
580+ return f'(MPI_Message *) { self .name } '
581+
582+ def type_text (self , enable_count = False ):
583+ type_name = self .mangle_name ('MPI_Message' )
584+ return f'{ type_name } *'
585+
586+
587+ @Type .add_type ('COMM_ERRHANDLER_FUNCTION' , abi_type = ['ompi' ])
588+ class TypeCommErrhandlerFunction (Type ):
589+
590+ def type_text (self , enable_count = False ):
591+ return 'MPI_Comm_errhandler_function *'
592+
593+
594+ @Type .add_type ('COMM_ERRHANDLER_FUNCTION' , abi_type = ['standard' ])
595+ class TypeCommErrhandlerFunctionStandard (Type ):
596+ # TODO: This may require a special function to wrap the calllback
597+ pass
598+
599+
600+ @Type .add_type ('FILE_ERRHANDLER_FUNCTION' , abi_type = ['ompi' ])
601+ class TypeFileErrhandlerFunction (Type ):
602+
603+ def type_text (self , enable_count = False ):
604+ return 'MPI_File_errhandler_function *'
605+
606+
607+ @Type .add_type ('FILE_ERRHANDLER_FUNCTION' , abi_type = ['standard' ])
608+ class TypeFileErrhandlerFunction (Type ):
609+ # TODO: This may require a special function to wrap the callback
610+ pass
611+
612+
613+ @Type .add_type ('ERRHANDLER' , abi_type = ['ompi' ])
614+ class TypeErrhandler (Type ):
615+
616+ def type_text (self , enable_count = False ):
617+ return 'MPI_Errhandler'
618+
619+
620+ @Type .add_type ('ERRHANDLER' , abi_type = ['standard' ])
621+ class TypeErrhandlerStandard (Type ):
622+
623+ @property
624+ def argument (self ):
625+ return f'(MPI_Errhandler) { self .name } '
626+
627+ def type_text (self , enable_count = False ):
628+ return self .mangle_name ('MPI_Errhandler' )
629+
630+
631+ @Type .add_type ('ERRHANDLER_OUT' , abi_type = ['ompi' ])
632+ class TypeErrhandlerOut (Type ):
633+
634+ def type_text (self , enable_count = False ):
635+ return 'MPI_Errhandler *'
636+
637+
638+ @Type .add_type ('ERRHANDLER_OUT' , abi_type = ['standard' ])
639+ class TypeErrhandlerOutStandard (Type ):
640+
641+ @property
642+ def argument (self ):
643+ return f'(MPI_Errhandler *) { self .name } '
644+
645+ def type_text (self , enable_count = False ):
646+ type_name = self .mangle_name ('MPI_Errhandler' )
647+ return f'{ MPI_Errhandler } *'
648+
649+
650+ @Type .add_type ('GROUP' , abi_type = ['ompi' ])
651+ class TypeGroup (Type ):
652+
653+ def type_text (self , enable_count = False ):
654+ return 'MPI_Group'
655+
656+
657+ @Type .add_type ('GROUP' , abi_type = ['standard' ])
658+ class TypeGroupStandard (Type ):
659+
660+ @property
661+ def argument (self ):
662+ return f'(MPI_Group) { self .name } '
663+
664+ def type_text (self , enable_count = False ):
665+ return self .mangle_name ('MPI_Group' )
0 commit comments