Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-28 22:48:29

0001 // -*- C++ -*-
0002 //
0003 // Package:     ServiceRegistry
0004 // Class  :     ActivityRegistry
0005 //
0006 // Implementation:
0007 //     <Notes on implementation>
0008 //
0009 // Original Author:  Chris Jones
0010 //         Created:  Tue Sep  6 10:26:49 EDT 2005
0011 //
0012 
0013 // system include files
0014 #include <algorithm>
0015 
0016 // user include files
0017 #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h"
0018 #include "FWCore/Utilities/interface/Algorithms.h"
0019 #include "FWCore/Utilities/interface/Exception.h"
0020 
0021 namespace edm {
0022   namespace {
0023     template <typename T>
0024     inline void copySlotsToFrom(T& iTo, T& iFrom) {
0025       for (auto& slot : iFrom.slots()) {
0026         iTo.connect(slot);
0027       }
0028     }
0029 
0030     template <typename T>
0031     inline void copySlotsToFromReverse(T& iTo, T& iFrom) {
0032       // This handles service slots that are supposed to be in reverse
0033       // order of construction. Copying new ones in is a little
0034       // tricky.  Here is an example of what follows
0035       // slots in iTo before  4 3 2 1  and copy in slots in iFrom 8 7 6 5.
0036       // reverse iFrom  5 6 7 8
0037       // then do the copy to front 8 7 6 5 4 3 2 1
0038 
0039       auto slotsFrom = iFrom.slots();
0040 
0041       std::reverse(slotsFrom.begin(), slotsFrom.end());
0042 
0043       for (auto& slotFrom : slotsFrom) {
0044         iTo.connect_front(slotFrom);
0045       }
0046     }
0047   }  // namespace
0048 
0049   namespace signalslot {
0050     void throwObsoleteSignalException() {
0051       throw cms::Exception("ConnectedToObsoleteServiceSignal")
0052           << "A Service has connected to an obsolete ActivityRegistry signal.";
0053     }
0054   }  // namespace signalslot
0055 
0056   void ActivityRegistry::connectGlobals(ActivityRegistry& iOther) {
0057     preallocateSignal_.connect(std::cref(iOther.preallocateSignal_));
0058     eventSetupConfigurationSignal_.connect(std::cref(iOther.eventSetupConfigurationSignal_));
0059     beginProcessingSignal_.connect(std::cref(iOther.beginProcessingSignal_));
0060     endProcessingSignal_.connect(std::cref(iOther.endProcessingSignal_));
0061     postBeginJobSignal_.connect(std::cref(iOther.postBeginJobSignal_));
0062     preEndJobSignal_.connect(std::cref(iOther.preEndJobSignal_));
0063     postEndJobSignal_.connect(std::cref(iOther.postEndJobSignal_));
0064 
0065     jobFailureSignal_.connect(std::cref(iOther.jobFailureSignal_));
0066 
0067     preSourceSignal_.connect(std::cref(iOther.preSourceSignal_));
0068     postSourceSignal_.connect(std::cref(iOther.postSourceSignal_));
0069 
0070     preSourceNextTransitionSignal_.connect(std::cref(iOther.preSourceNextTransitionSignal_));
0071     postSourceNextTransitionSignal_.connect(std::cref(iOther.postSourceNextTransitionSignal_));
0072 
0073     preSourceLumiSignal_.connect(std::cref(iOther.preSourceLumiSignal_));
0074     postSourceLumiSignal_.connect(std::cref(iOther.postSourceLumiSignal_));
0075 
0076     preSourceRunSignal_.connect(std::cref(iOther.preSourceRunSignal_));
0077     postSourceRunSignal_.connect(std::cref(iOther.postSourceRunSignal_));
0078 
0079     preSourceProcessBlockSignal_.connect(std::cref(iOther.preSourceProcessBlockSignal_));
0080     postSourceProcessBlockSignal_.connect(std::cref(iOther.postSourceProcessBlockSignal_));
0081 
0082     preOpenFileSignal_.connect(std::cref(iOther.preOpenFileSignal_));
0083     postOpenFileSignal_.connect(std::cref(iOther.postOpenFileSignal_));
0084 
0085     preCloseFileSignal_.connect(std::cref(iOther.preCloseFileSignal_));
0086     postCloseFileSignal_.connect(std::cref(iOther.postCloseFileSignal_));
0087 
0088     preSourceConstructionSignal_.connect(std::cref(iOther.preSourceConstructionSignal_));
0089     postSourceConstructionSignal_.connect(std::cref(iOther.postSourceConstructionSignal_));
0090 
0091     preStreamEarlyTerminationSignal_.connect(std::cref(iOther.preStreamEarlyTerminationSignal_));
0092     preGlobalEarlyTerminationSignal_.connect(std::cref(iOther.preGlobalEarlyTerminationSignal_));
0093     preSourceEarlyTerminationSignal_.connect(std::cref(iOther.preSourceEarlyTerminationSignal_));
0094 
0095     esSyncIOVQueuingSignal_.connect(std::cref(iOther.esSyncIOVQueuingSignal_));
0096     preESSyncIOVSignal_.connect(std::cref(iOther.preESSyncIOVSignal_));
0097     postESSyncIOVSignal_.connect(std::cref(iOther.postESSyncIOVSignal_));
0098   }
0099 
0100   void ActivityRegistry::connectLocals(ActivityRegistry& iOther) {
0101     preBeginJobSignal_.connect(std::cref(iOther.preBeginJobSignal_));
0102 
0103     preBeginStreamSignal_.connect(std::cref(iOther.preBeginStreamSignal_));
0104     postBeginStreamSignal_.connect(std::cref(iOther.postBeginStreamSignal_));
0105 
0106     preEndStreamSignal_.connect(std::cref(iOther.preEndStreamSignal_));
0107     postEndStreamSignal_.connect(std::cref(iOther.postEndStreamSignal_));
0108 
0109     preModuleBeginStreamSignal_.connect(std::cref(iOther.preModuleBeginStreamSignal_));
0110     postModuleBeginStreamSignal_.connect(std::cref(iOther.postModuleBeginStreamSignal_));
0111 
0112     preModuleEndStreamSignal_.connect(std::cref(iOther.preModuleEndStreamSignal_));
0113     postModuleEndStreamSignal_.connect(std::cref(iOther.postModuleEndStreamSignal_));
0114 
0115     preBeginProcessBlockSignal_.connect(std::cref(iOther.preBeginProcessBlockSignal_));
0116     postBeginProcessBlockSignal_.connect(std::cref(iOther.postBeginProcessBlockSignal_));
0117 
0118     preAccessInputProcessBlockSignal_.connect(std::cref(iOther.preAccessInputProcessBlockSignal_));
0119     postAccessInputProcessBlockSignal_.connect(std::cref(iOther.postAccessInputProcessBlockSignal_));
0120 
0121     preEndProcessBlockSignal_.connect(std::cref(iOther.preEndProcessBlockSignal_));
0122     postEndProcessBlockSignal_.connect(std::cref(iOther.postEndProcessBlockSignal_));
0123 
0124     preGlobalBeginRunSignal_.connect(std::cref(iOther.preGlobalBeginRunSignal_));
0125     postGlobalBeginRunSignal_.connect(std::cref(iOther.postGlobalBeginRunSignal_));
0126 
0127     preGlobalEndRunSignal_.connect(std::cref(iOther.preGlobalEndRunSignal_));
0128     postGlobalEndRunSignal_.connect(std::cref(iOther.postGlobalEndRunSignal_));
0129 
0130     preWriteProcessBlockSignal_.connect(std::cref(iOther.preWriteProcessBlockSignal_));
0131     postWriteProcessBlockSignal_.connect(std::cref(iOther.postWriteProcessBlockSignal_));
0132 
0133     preGlobalWriteRunSignal_.connect(std::cref(iOther.preGlobalWriteRunSignal_));
0134     postGlobalWriteRunSignal_.connect(std::cref(iOther.postGlobalWriteRunSignal_));
0135 
0136     preStreamBeginRunSignal_.connect(std::cref(iOther.preStreamBeginRunSignal_));
0137     postStreamBeginRunSignal_.connect(std::cref(iOther.postStreamBeginRunSignal_));
0138 
0139     preStreamEndRunSignal_.connect(std::cref(iOther.preStreamEndRunSignal_));
0140     postStreamEndRunSignal_.connect(std::cref(iOther.postStreamEndRunSignal_));
0141 
0142     preGlobalBeginLumiSignal_.connect(std::cref(iOther.preGlobalBeginLumiSignal_));
0143     postGlobalBeginLumiSignal_.connect(std::cref(iOther.postGlobalBeginLumiSignal_));
0144 
0145     preGlobalEndLumiSignal_.connect(std::cref(iOther.preGlobalEndLumiSignal_));
0146     postGlobalEndLumiSignal_.connect(std::cref(iOther.postGlobalEndLumiSignal_));
0147 
0148     preGlobalWriteLumiSignal_.connect(std::cref(iOther.preGlobalWriteLumiSignal_));
0149     postGlobalWriteLumiSignal_.connect(std::cref(iOther.postGlobalWriteLumiSignal_));
0150 
0151     preStreamBeginLumiSignal_.connect(std::cref(iOther.preStreamBeginLumiSignal_));
0152     postStreamBeginLumiSignal_.connect(std::cref(iOther.postStreamBeginLumiSignal_));
0153 
0154     preStreamEndLumiSignal_.connect(std::cref(iOther.preStreamEndLumiSignal_));
0155     postStreamEndLumiSignal_.connect(std::cref(iOther.postStreamEndLumiSignal_));
0156 
0157     preEventSignal_.connect(std::cref(iOther.preEventSignal_));
0158     postEventSignal_.connect(std::cref(iOther.postEventSignal_));
0159 
0160     preClearEventSignal_.connect(std::cref(iOther.preClearEventSignal_));
0161     postClearEventSignal_.connect(std::cref(iOther.postClearEventSignal_));
0162 
0163     prePathEventSignal_.connect(std::cref(iOther.prePathEventSignal_));
0164     postPathEventSignal_.connect(std::cref(iOther.postPathEventSignal_));
0165 
0166     preModuleConstructionSignal_.connect(std::cref(iOther.preModuleConstructionSignal_));
0167     postModuleConstructionSignal_.connect(std::cref(iOther.postModuleConstructionSignal_));
0168 
0169     preModuleDestructionSignal_.connect(std::cref(iOther.preModuleDestructionSignal_));
0170     postModuleDestructionSignal_.connect(std::cref(iOther.postModuleDestructionSignal_));
0171 
0172     preModuleBeginJobSignal_.connect(std::cref(iOther.preModuleBeginJobSignal_));
0173     postModuleBeginJobSignal_.connect(std::cref(iOther.postModuleBeginJobSignal_));
0174 
0175     preModuleEndJobSignal_.connect(std::cref(iOther.preModuleEndJobSignal_));
0176     postModuleEndJobSignal_.connect(std::cref(iOther.postModuleEndJobSignal_));
0177 
0178     preModuleEventPrefetchingSignal_.connect(std::cref(iOther.preModuleEventPrefetchingSignal_));
0179     postModuleEventPrefetchingSignal_.connect(std::cref(iOther.postModuleEventPrefetchingSignal_));
0180 
0181     preModuleStreamPrefetchingSignal_.connect(std::cref(iOther.preModuleStreamPrefetchingSignal_));
0182     postModuleStreamPrefetchingSignal_.connect(std::cref(iOther.postModuleStreamPrefetchingSignal_));
0183 
0184     preModuleGlobalPrefetchingSignal_.connect(std::cref(iOther.preModuleGlobalPrefetchingSignal_));
0185     postModuleGlobalPrefetchingSignal_.connect(std::cref(iOther.postModuleGlobalPrefetchingSignal_));
0186 
0187     preModuleEventSignal_.connect(std::cref(iOther.preModuleEventSignal_));
0188     postModuleEventSignal_.connect(std::cref(iOther.postModuleEventSignal_));
0189 
0190     preModuleEventAcquireSignal_.connect(std::cref(iOther.preModuleEventAcquireSignal_));
0191     postModuleEventAcquireSignal_.connect(std::cref(iOther.postModuleEventAcquireSignal_));
0192 
0193     preModuleTransformPrefetchingSignal_.connect(std::cref(iOther.preModuleTransformPrefetchingSignal_));
0194     postModuleTransformPrefetchingSignal_.connect(std::cref(iOther.postModuleTransformPrefetchingSignal_));
0195 
0196     preModuleTransformSignal_.connect(std::cref(iOther.preModuleTransformSignal_));
0197     postModuleTransformSignal_.connect(std::cref(iOther.postModuleTransformSignal_));
0198 
0199     preModuleTransformAcquiringSignal_.connect(std::cref(iOther.preModuleTransformAcquiringSignal_));
0200     postModuleTransformAcquiringSignal_.connect(std::cref(iOther.postModuleTransformAcquiringSignal_));
0201 
0202     preModuleEventDelayedGetSignal_.connect(std::cref(iOther.preModuleEventDelayedGetSignal_));
0203     postModuleEventDelayedGetSignal_.connect(std::cref(iOther.postModuleEventDelayedGetSignal_));
0204 
0205     preEventReadFromSourceSignal_.connect(std::cref(iOther.preEventReadFromSourceSignal_));
0206     postEventReadFromSourceSignal_.connect(std::cref(iOther.postEventReadFromSourceSignal_));
0207 
0208     preModuleStreamBeginRunSignal_.connect(std::cref(iOther.preModuleStreamBeginRunSignal_));
0209     postModuleStreamBeginRunSignal_.connect(std::cref(iOther.postModuleStreamBeginRunSignal_));
0210 
0211     preModuleStreamEndRunSignal_.connect(std::cref(iOther.preModuleStreamEndRunSignal_));
0212     postModuleStreamEndRunSignal_.connect(std::cref(iOther.postModuleStreamEndRunSignal_));
0213 
0214     preModuleStreamBeginLumiSignal_.connect(std::cref(iOther.preModuleStreamBeginLumiSignal_));
0215     postModuleStreamBeginLumiSignal_.connect(std::cref(iOther.postModuleStreamBeginLumiSignal_));
0216 
0217     preModuleStreamEndLumiSignal_.connect(std::cref(iOther.preModuleStreamEndLumiSignal_));
0218     postModuleStreamEndLumiSignal_.connect(std::cref(iOther.postModuleStreamEndLumiSignal_));
0219 
0220     preModuleBeginProcessBlockSignal_.connect(std::cref(iOther.preModuleBeginProcessBlockSignal_));
0221     postModuleBeginProcessBlockSignal_.connect(std::cref(iOther.postModuleBeginProcessBlockSignal_));
0222 
0223     preModuleAccessInputProcessBlockSignal_.connect(std::cref(iOther.preModuleAccessInputProcessBlockSignal_));
0224     postModuleAccessInputProcessBlockSignal_.connect(std::cref(iOther.postModuleAccessInputProcessBlockSignal_));
0225 
0226     preModuleEndProcessBlockSignal_.connect(std::cref(iOther.preModuleEndProcessBlockSignal_));
0227     postModuleEndProcessBlockSignal_.connect(std::cref(iOther.postModuleEndProcessBlockSignal_));
0228 
0229     preModuleGlobalBeginRunSignal_.connect(std::cref(iOther.preModuleGlobalBeginRunSignal_));
0230     postModuleGlobalBeginRunSignal_.connect(std::cref(iOther.postModuleGlobalBeginRunSignal_));
0231 
0232     preModuleGlobalEndRunSignal_.connect(std::cref(iOther.preModuleGlobalEndRunSignal_));
0233     postModuleGlobalEndRunSignal_.connect(std::cref(iOther.postModuleGlobalEndRunSignal_));
0234 
0235     preModuleGlobalBeginLumiSignal_.connect(std::cref(iOther.preModuleGlobalBeginLumiSignal_));
0236     postModuleGlobalBeginLumiSignal_.connect(std::cref(iOther.postModuleGlobalBeginLumiSignal_));
0237 
0238     preModuleGlobalEndLumiSignal_.connect(std::cref(iOther.preModuleGlobalEndLumiSignal_));
0239     postModuleGlobalEndLumiSignal_.connect(std::cref(iOther.postModuleGlobalEndLumiSignal_));
0240 
0241     preModuleWriteProcessBlockSignal_.connect(std::cref(iOther.preModuleWriteProcessBlockSignal_));
0242     postModuleWriteProcessBlockSignal_.connect(std::cref(iOther.postModuleWriteProcessBlockSignal_));
0243 
0244     preModuleWriteRunSignal_.connect(std::cref(iOther.preModuleWriteRunSignal_));
0245     postModuleWriteRunSignal_.connect(std::cref(iOther.postModuleWriteRunSignal_));
0246 
0247     preModuleWriteLumiSignal_.connect(std::cref(iOther.preModuleWriteLumiSignal_));
0248     postModuleWriteLumiSignal_.connect(std::cref(iOther.postModuleWriteLumiSignal_));
0249 
0250     preESModulePrefetchingSignal_.connect(std::cref(iOther.preESModulePrefetchingSignal_));
0251     postESModulePrefetchingSignal_.connect(std::cref(iOther.postESModulePrefetchingSignal_));
0252 
0253     preESModuleSignal_.connect(std::cref(iOther.preESModuleSignal_));
0254     postESModuleSignal_.connect(std::cref(iOther.postESModuleSignal_));
0255 
0256     preESModuleAcquireSignal_.connect(std::cref(iOther.preESModuleAcquireSignal_));
0257     postESModuleAcquireSignal_.connect(std::cref(iOther.postESModuleAcquireSignal_));
0258 
0259     postESModuleRegistrationSignal_.connect(std::cref(iOther.postESModuleRegistrationSignal_));
0260   }
0261 
0262   void ActivityRegistry::connect(ActivityRegistry& iOther) {
0263     connectGlobals(iOther);
0264     connectLocals(iOther);
0265   }
0266 
0267   void ActivityRegistry::connectToSubProcess(ActivityRegistry& iOther) {
0268     connectGlobals(iOther);       // child sees parents global signals
0269     iOther.connectLocals(*this);  // parent see childs global signals
0270   }
0271 
0272   void ActivityRegistry::copySlotsFrom(ActivityRegistry& iOther) {
0273     copySlotsToFrom(preallocateSignal_, iOther.preallocateSignal_);
0274     copySlotsToFrom(eventSetupConfigurationSignal_, iOther.eventSetupConfigurationSignal_);
0275     copySlotsToFrom(beginProcessingSignal_, iOther.beginProcessingSignal_);
0276     copySlotsToFrom(endProcessingSignal_, iOther.endProcessingSignal_);
0277     copySlotsToFrom(preBeginJobSignal_, iOther.preBeginJobSignal_);
0278     copySlotsToFrom(postBeginJobSignal_, iOther.postBeginJobSignal_);
0279     copySlotsToFromReverse(preEndJobSignal_, iOther.preEndJobSignal_);
0280     copySlotsToFromReverse(postEndJobSignal_, iOther.postEndJobSignal_);
0281 
0282     copySlotsToFromReverse(jobFailureSignal_, iOther.jobFailureSignal_);
0283 
0284     copySlotsToFrom(preSourceSignal_, iOther.preSourceSignal_);
0285     copySlotsToFromReverse(postSourceSignal_, iOther.postSourceSignal_);
0286 
0287     copySlotsToFrom(preSourceNextTransitionSignal_, iOther.preSourceNextTransitionSignal_);
0288     copySlotsToFromReverse(postSourceNextTransitionSignal_, iOther.postSourceNextTransitionSignal_);
0289 
0290     copySlotsToFrom(preSourceLumiSignal_, iOther.preSourceLumiSignal_);
0291     copySlotsToFromReverse(postSourceLumiSignal_, iOther.postSourceLumiSignal_);
0292 
0293     copySlotsToFrom(preSourceRunSignal_, iOther.preSourceRunSignal_);
0294     copySlotsToFromReverse(postSourceRunSignal_, iOther.postSourceRunSignal_);
0295 
0296     copySlotsToFrom(preSourceProcessBlockSignal_, iOther.preSourceProcessBlockSignal_);
0297     copySlotsToFromReverse(postSourceProcessBlockSignal_, iOther.postSourceProcessBlockSignal_);
0298 
0299     copySlotsToFrom(preOpenFileSignal_, iOther.preOpenFileSignal_);
0300     copySlotsToFromReverse(postOpenFileSignal_, iOther.postOpenFileSignal_);
0301 
0302     copySlotsToFrom(preCloseFileSignal_, iOther.preCloseFileSignal_);
0303     copySlotsToFromReverse(postCloseFileSignal_, iOther.postCloseFileSignal_);
0304 
0305     copySlotsToFrom(preBeginStreamSignal_, iOther.preBeginStreamSignal_);
0306     copySlotsToFromReverse(postBeginStreamSignal_, iOther.postBeginStreamSignal_);
0307 
0308     copySlotsToFrom(preEndStreamSignal_, iOther.preEndStreamSignal_);
0309     copySlotsToFromReverse(postEndStreamSignal_, iOther.postEndStreamSignal_);
0310 
0311     copySlotsToFrom(preModuleBeginStreamSignal_, iOther.preModuleBeginStreamSignal_);
0312     copySlotsToFromReverse(postModuleBeginStreamSignal_, iOther.postModuleBeginStreamSignal_);
0313 
0314     copySlotsToFrom(preModuleEndStreamSignal_, iOther.preModuleEndStreamSignal_);
0315     copySlotsToFromReverse(postModuleEndStreamSignal_, iOther.postModuleEndStreamSignal_);
0316 
0317     copySlotsToFrom(preBeginProcessBlockSignal_, iOther.preBeginProcessBlockSignal_);
0318     copySlotsToFromReverse(postBeginProcessBlockSignal_, iOther.postBeginProcessBlockSignal_);
0319 
0320     copySlotsToFrom(preAccessInputProcessBlockSignal_, iOther.preAccessInputProcessBlockSignal_);
0321     copySlotsToFromReverse(postAccessInputProcessBlockSignal_, iOther.postAccessInputProcessBlockSignal_);
0322 
0323     copySlotsToFrom(preEndProcessBlockSignal_, iOther.preEndProcessBlockSignal_);
0324     copySlotsToFromReverse(postEndProcessBlockSignal_, iOther.postEndProcessBlockSignal_);
0325 
0326     copySlotsToFrom(preGlobalBeginRunSignal_, iOther.preGlobalBeginRunSignal_);
0327     copySlotsToFromReverse(postGlobalBeginRunSignal_, iOther.postGlobalBeginRunSignal_);
0328 
0329     copySlotsToFrom(preGlobalEndRunSignal_, iOther.preGlobalEndRunSignal_);
0330     copySlotsToFromReverse(postGlobalEndRunSignal_, iOther.postGlobalEndRunSignal_);
0331 
0332     copySlotsToFrom(preWriteProcessBlockSignal_, iOther.preWriteProcessBlockSignal_);
0333     copySlotsToFromReverse(postWriteProcessBlockSignal_, iOther.postWriteProcessBlockSignal_);
0334 
0335     copySlotsToFrom(preGlobalWriteRunSignal_, iOther.preGlobalWriteRunSignal_);
0336     copySlotsToFromReverse(postGlobalWriteRunSignal_, iOther.postGlobalWriteRunSignal_);
0337 
0338     copySlotsToFrom(preStreamBeginRunSignal_, iOther.preStreamBeginRunSignal_);
0339     copySlotsToFromReverse(postStreamBeginRunSignal_, iOther.postStreamBeginRunSignal_);
0340 
0341     copySlotsToFrom(preStreamEndRunSignal_, iOther.preStreamEndRunSignal_);
0342     copySlotsToFromReverse(postStreamEndRunSignal_, iOther.postStreamEndRunSignal_);
0343 
0344     copySlotsToFrom(preGlobalBeginLumiSignal_, iOther.preGlobalBeginLumiSignal_);
0345     copySlotsToFromReverse(postGlobalBeginLumiSignal_, iOther.postGlobalBeginLumiSignal_);
0346 
0347     copySlotsToFrom(preGlobalEndLumiSignal_, iOther.preGlobalEndLumiSignal_);
0348     copySlotsToFromReverse(postGlobalEndLumiSignal_, iOther.postGlobalEndLumiSignal_);
0349 
0350     copySlotsToFrom(preGlobalWriteLumiSignal_, iOther.preGlobalWriteLumiSignal_);
0351     copySlotsToFromReverse(postGlobalWriteLumiSignal_, iOther.postGlobalWriteLumiSignal_);
0352 
0353     copySlotsToFrom(preStreamBeginLumiSignal_, iOther.preStreamBeginLumiSignal_);
0354     copySlotsToFromReverse(postStreamBeginLumiSignal_, iOther.postStreamBeginLumiSignal_);
0355 
0356     copySlotsToFrom(preStreamEndLumiSignal_, iOther.preStreamEndLumiSignal_);
0357     copySlotsToFromReverse(postStreamEndLumiSignal_, iOther.postStreamEndLumiSignal_);
0358 
0359     copySlotsToFrom(preEventSignal_, iOther.preEventSignal_);
0360     copySlotsToFromReverse(postEventSignal_, iOther.postEventSignal_);
0361 
0362     copySlotsToFrom(preClearEventSignal_, iOther.preClearEventSignal_);
0363     copySlotsToFromReverse(postClearEventSignal_, iOther.postClearEventSignal_);
0364 
0365     copySlotsToFrom(prePathEventSignal_, iOther.prePathEventSignal_);
0366     copySlotsToFromReverse(postPathEventSignal_, iOther.postPathEventSignal_);
0367 
0368     copySlotsToFrom(preStreamEarlyTerminationSignal_, iOther.preStreamEarlyTerminationSignal_);
0369     copySlotsToFrom(preGlobalEarlyTerminationSignal_, iOther.preGlobalEarlyTerminationSignal_);
0370     copySlotsToFrom(preSourceEarlyTerminationSignal_, iOther.preSourceEarlyTerminationSignal_);
0371 
0372     copySlotsToFrom(preModuleConstructionSignal_, iOther.preModuleConstructionSignal_);
0373     copySlotsToFromReverse(postModuleConstructionSignal_, iOther.postModuleConstructionSignal_);
0374 
0375     copySlotsToFrom(preModuleDestructionSignal_, iOther.preModuleDestructionSignal_);
0376     copySlotsToFromReverse(postModuleDestructionSignal_, iOther.postModuleDestructionSignal_);
0377 
0378     copySlotsToFrom(preModuleBeginJobSignal_, iOther.preModuleBeginJobSignal_);
0379     copySlotsToFromReverse(postModuleBeginJobSignal_, iOther.postModuleBeginJobSignal_);
0380 
0381     copySlotsToFrom(preModuleEndJobSignal_, iOther.preModuleEndJobSignal_);
0382     copySlotsToFromReverse(postModuleEndJobSignal_, iOther.postModuleEndJobSignal_);
0383 
0384     copySlotsToFrom(preModuleEventPrefetchingSignal_, iOther.preModuleEventPrefetchingSignal_);
0385     copySlotsToFromReverse(postModuleEventPrefetchingSignal_, iOther.postModuleEventPrefetchingSignal_);
0386 
0387     copySlotsToFrom(preModuleStreamPrefetchingSignal_, iOther.preModuleStreamPrefetchingSignal_);
0388     copySlotsToFromReverse(postModuleStreamPrefetchingSignal_, iOther.postModuleStreamPrefetchingSignal_);
0389 
0390     copySlotsToFrom(preModuleGlobalPrefetchingSignal_, iOther.preModuleGlobalPrefetchingSignal_);
0391     copySlotsToFromReverse(postModuleGlobalPrefetchingSignal_, iOther.postModuleGlobalPrefetchingSignal_);
0392 
0393     copySlotsToFrom(preModuleEventSignal_, iOther.preModuleEventSignal_);
0394     copySlotsToFromReverse(postModuleEventSignal_, iOther.postModuleEventSignal_);
0395 
0396     copySlotsToFrom(preModuleEventAcquireSignal_, iOther.preModuleEventAcquireSignal_);
0397     copySlotsToFromReverse(postModuleEventAcquireSignal_, iOther.postModuleEventAcquireSignal_);
0398 
0399     copySlotsToFrom(preModuleTransformPrefetchingSignal_, iOther.preModuleTransformPrefetchingSignal_);
0400     copySlotsToFromReverse(postModuleTransformPrefetchingSignal_, iOther.postModuleTransformPrefetchingSignal_);
0401 
0402     copySlotsToFrom(preModuleTransformSignal_, iOther.preModuleTransformSignal_);
0403     copySlotsToFromReverse(postModuleTransformSignal_, iOther.postModuleTransformSignal_);
0404 
0405     copySlotsToFrom(preModuleTransformAcquiringSignal_, iOther.preModuleTransformAcquiringSignal_);
0406     copySlotsToFromReverse(postModuleTransformAcquiringSignal_, iOther.postModuleTransformAcquiringSignal_);
0407 
0408     copySlotsToFrom(preModuleEventDelayedGetSignal_, iOther.preModuleEventDelayedGetSignal_);
0409     copySlotsToFromReverse(postModuleEventDelayedGetSignal_, iOther.postModuleEventDelayedGetSignal_);
0410 
0411     copySlotsToFrom(preEventReadFromSourceSignal_, iOther.preEventReadFromSourceSignal_);
0412     copySlotsToFromReverse(postEventReadFromSourceSignal_, iOther.postEventReadFromSourceSignal_);
0413 
0414     copySlotsToFrom(preModuleStreamBeginRunSignal_, iOther.preModuleStreamBeginRunSignal_);
0415     copySlotsToFromReverse(postModuleStreamBeginRunSignal_, iOther.postModuleStreamBeginRunSignal_);
0416 
0417     copySlotsToFrom(preModuleStreamEndRunSignal_, iOther.preModuleStreamEndRunSignal_);
0418     copySlotsToFromReverse(postModuleStreamEndRunSignal_, iOther.postModuleStreamEndRunSignal_);
0419 
0420     copySlotsToFrom(preModuleStreamBeginLumiSignal_, iOther.preModuleStreamBeginLumiSignal_);
0421     copySlotsToFromReverse(postModuleStreamBeginLumiSignal_, iOther.postModuleStreamBeginLumiSignal_);
0422 
0423     copySlotsToFrom(preModuleStreamEndLumiSignal_, iOther.preModuleStreamEndLumiSignal_);
0424     copySlotsToFromReverse(postModuleStreamEndLumiSignal_, iOther.postModuleStreamEndLumiSignal_);
0425 
0426     copySlotsToFrom(preModuleBeginProcessBlockSignal_, iOther.preModuleBeginProcessBlockSignal_);
0427     copySlotsToFromReverse(postModuleBeginProcessBlockSignal_, iOther.postModuleBeginProcessBlockSignal_);
0428 
0429     copySlotsToFrom(preModuleAccessInputProcessBlockSignal_, iOther.preModuleAccessInputProcessBlockSignal_);
0430     copySlotsToFromReverse(postModuleAccessInputProcessBlockSignal_, iOther.postModuleAccessInputProcessBlockSignal_);
0431 
0432     copySlotsToFrom(preModuleEndProcessBlockSignal_, iOther.preModuleEndProcessBlockSignal_);
0433     copySlotsToFromReverse(postModuleEndProcessBlockSignal_, iOther.postModuleEndProcessBlockSignal_);
0434 
0435     copySlotsToFrom(preModuleGlobalBeginRunSignal_, iOther.preModuleGlobalBeginRunSignal_);
0436     copySlotsToFromReverse(postModuleGlobalBeginRunSignal_, iOther.postModuleGlobalBeginRunSignal_);
0437 
0438     copySlotsToFrom(preModuleGlobalEndRunSignal_, iOther.preModuleGlobalEndRunSignal_);
0439     copySlotsToFromReverse(postModuleGlobalEndRunSignal_, iOther.postModuleGlobalEndRunSignal_);
0440 
0441     copySlotsToFrom(preModuleGlobalBeginLumiSignal_, iOther.preModuleGlobalBeginLumiSignal_);
0442     copySlotsToFromReverse(postModuleGlobalBeginLumiSignal_, iOther.postModuleGlobalBeginLumiSignal_);
0443 
0444     copySlotsToFrom(preModuleGlobalEndLumiSignal_, iOther.preModuleGlobalEndLumiSignal_);
0445     copySlotsToFromReverse(postModuleGlobalEndLumiSignal_, iOther.postModuleGlobalEndLumiSignal_);
0446 
0447     copySlotsToFrom(preModuleWriteProcessBlockSignal_, iOther.preModuleWriteProcessBlockSignal_);
0448     copySlotsToFromReverse(postModuleWriteProcessBlockSignal_, iOther.postModuleWriteProcessBlockSignal_);
0449 
0450     copySlotsToFrom(preModuleWriteRunSignal_, iOther.preModuleWriteRunSignal_);
0451     copySlotsToFromReverse(postModuleWriteRunSignal_, iOther.postModuleWriteRunSignal_);
0452 
0453     copySlotsToFrom(preModuleWriteLumiSignal_, iOther.preModuleWriteLumiSignal_);
0454     copySlotsToFromReverse(postModuleWriteLumiSignal_, iOther.postModuleWriteLumiSignal_);
0455 
0456     copySlotsToFrom(preESModulePrefetchingSignal_, iOther.preESModulePrefetchingSignal_);
0457     copySlotsToFromReverse(postESModulePrefetchingSignal_, iOther.postESModulePrefetchingSignal_);
0458 
0459     copySlotsToFrom(preESModuleSignal_, iOther.preESModuleSignal_);
0460     copySlotsToFromReverse(postESModuleSignal_, iOther.postESModuleSignal_);
0461 
0462     copySlotsToFrom(preESModuleAcquireSignal_, iOther.preESModuleAcquireSignal_);
0463     copySlotsToFromReverse(postESModuleAcquireSignal_, iOther.postESModuleAcquireSignal_);
0464 
0465     copySlotsToFromReverse(postESModuleRegistrationSignal_, iOther.postESModuleRegistrationSignal_);
0466 
0467     copySlotsToFrom(preSourceConstructionSignal_, iOther.preSourceConstructionSignal_);
0468     copySlotsToFromReverse(postSourceConstructionSignal_, iOther.postSourceConstructionSignal_);
0469 
0470     copySlotsToFrom(esSyncIOVQueuingSignal_, iOther.esSyncIOVQueuingSignal_);
0471     copySlotsToFrom(preESSyncIOVSignal_, iOther.preESSyncIOVSignal_);
0472     copySlotsToFromReverse(postESSyncIOVSignal_, iOther.postESSyncIOVSignal_);
0473   }
0474 }  // namespace edm