| 77 | } // checkFactoryRegistration |
| 78 | |
| 79 | int |
| 80 | StreamableManager::registerFactory(Pointer<StreamableFactory> factory) |
| 81 | { |
| 82 | #if !defined(NDEBUG) |
| 83 | TBOX_ASSERT(factory); |
| 84 | TBOX_ASSERT(factory->getStreamableClassID() == getUnregisteredID()); |
| 85 | #endif |
| 86 | // These barriers ensure that each factory is assigned the same class ID |
| 87 | // number on each MPI process. |
| 88 | IBTK_MPI::barrier(); |
| 89 | const int factory_id = createUniqueID(); |
| 90 | IBTK_MPI::barrier(); |
| 91 | factory->setStreamableClassID(factory_id); |
| 92 | d_factory_map[factory_id] = factory; |
| 93 | return factory_id; |
| 94 | } // registerFactory |
| 95 | |
| 96 | /////////////////////////////// PROTECTED //////////////////////////////////// |
| 97 | |