@@ -312,7 +312,7 @@ def packMsg(self, destObj, msgArgs, header):
312
312
return (msg , direct_copy_buffers )
313
313
314
314
# register class C in Charm
315
- def registerInCharm (self , C , charm_type , libRegisterFunc ):
315
+ def registerInCharmAs (self , C , charm_type , libRegisterFunc ):
316
316
charm_type_id = charm_type .type_id
317
317
entryMethods = self .classEntryMethods [charm_type_id ][C ]
318
318
# if self.myPe() == 0: print("CharmPy:: Registering class " + C.__name__ + " in Charm with " + str(len(entryMethods)) + " entry methods " + str([e.name for e in entryMethods]))
@@ -328,6 +328,19 @@ def registerInCharm(self, C, charm_type, libRegisterFunc):
328
328
setattr (self , proxyClass .__name__ , proxyClass ) # save new class in my namespace
329
329
setattr (chare , proxyClass .__name__ , proxyClass ) # save in module namespace (needed to pickle the proxy)
330
330
331
+ def registerInCharm (self , C ):
332
+ C .idx = [None ] * len (CHARM_TYPES )
333
+ charm_types = self .registered [C ]
334
+ if Mainchare in charm_types :
335
+ self .registerInCharmAs (C , Mainchare , self .lib .CkRegisterMainchare )
336
+ if Group in charm_types :
337
+ if ArrayMap in C .mro ():
338
+ self .registerInCharmAs (C , Group , self .lib .CkRegisterArrayMap )
339
+ else :
340
+ self .registerInCharmAs (C , Group , self .lib .CkRegisterGroup )
341
+ if Array in charm_types :
342
+ self .registerInCharmAs (C , Array , self .lib .CkRegisterArray )
343
+
331
344
# first callback from Charm++ shared library
332
345
# this method registers classes with the shared library
333
346
def registerMainModule (self ):
@@ -356,17 +369,7 @@ def registerMainModule(self):
356
369
print (out_msg )
357
370
358
371
for C in self .register_order :
359
- C .idx = [None ] * len (CHARM_TYPES )
360
- charm_types = self .registered [C ]
361
- if Mainchare in charm_types :
362
- self .registerInCharm (C , Mainchare , self .lib .CkRegisterMainchare )
363
- if Group in charm_types :
364
- if ArrayMap in C .mro ():
365
- self .registerInCharm (C , Group , self .lib .CkRegisterArrayMap )
366
- else :
367
- self .registerInCharm (C , Group , self .lib .CkRegisterGroup )
368
- if Array in charm_types :
369
- self .registerInCharm (C , Array , self .lib .CkRegisterArray )
372
+ self .registerInCharm (C )
370
373
371
374
def registerAs (self , C , charm_type_id ):
372
375
if charm_type_id == MAINCHARE :
0 commit comments