13 A test modeling a production with subsequent modification of a data object. '/Event/B' experiences a conditional modification,
14 while '/Event/A' - an unconditional one:
15 (C): '/Event/B' <---- | UpdaterAlg3 (C) | ProducerAlg2 (C) |
16 (U): '/Event/A' <---- | UpdaterAlg2 (U) | ProducerAlg1 (C) | UpdaterAlg4 (U) | UpdaterAlg1 (C) |
20 from Configurables
import HiveWhiteBoard, HiveSlimEventLoopMgr, AvalancheSchedulerSvc, CPUCruncher, CPUCrunchSvc, PrecedenceSvc
27 CPUCrunchSvc(shortCalib=
True)
29 PrecedenceSvc(OutputLevel=DEBUG)
31 whiteboard = HiveWhiteBoard(
32 "EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
34 slimeventloopmgr = HiveSlimEventLoopMgr(
35 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO)
37 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight)
39 producerAlg1 = CPUCruncher(name=
"ProducerAlg1")
40 producerAlg1.outKeys = [
"/Event/A"]
42 updaterAlg1 = CPUCruncher(name=
"UpdaterAlg1")
43 updaterAlg1.outKeys = [
"/Event/A"]
45 updaterAlg2 = CPUCruncher(name=
"UpdaterAlg2")
46 updaterAlg2.outKeys = [
"/Event/A"]
48 producerAlg2 = CPUCruncher(name=
"ProducerAlg2")
49 producerAlg2.inpKeys = [
"/Event/A"]
50 producerAlg2.outKeys = [
"/Event/B"]
52 updaterAlg3 = CPUCruncher(name=
"UpdaterAlg3")
53 updaterAlg3.outKeys = [
"/Event/B"]
55 updaterAlg4 = CPUCruncher(name=
"UpdaterAlg4")
56 updaterAlg4.outKeys = [
"/Event/A"]
59 "ConditionalBranch", Sequential=
True, ShortCircuit=
True)
60 branch2.Members = [producerAlg1, updaterAlg1, producerAlg2, updaterAlg3]
63 branch.Members = [branch2, updaterAlg2, updaterAlg4]
69 EventLoop=slimeventloopmgr,
71 MessageSvcType=
"InertMessageSvc",