Skip to content

Commit cad1e4e

Browse files
committed
Add new types to c_type.py
Signed-off-by: Jake Tronge <jtronge@lanl.gov>
1 parent e8a4be1 commit cad1e4e

File tree

1 file changed

+155
-4
lines changed

1 file changed

+155
-4
lines changed

ompi/mpi/bindings/ompi_bindings/c_type.py

Lines changed: 155 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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')
159166
class 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')
172186
class 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'])
495546
class 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

Comments
 (0)