1 4 package com.tctest; 5 6 import EDU.oswego.cs.dl.util.concurrent.SynchronizedInt; 7 8 import com.tc.object.config.ConfigVisitor; 9 import com.tc.object.config.DSOClientConfigHelper; 10 import com.tc.object.config.TransparencyClassSpec; 11 import com.tc.object.config.spec.SynchronizedIntSpec; 12 import com.tc.simulator.app.ApplicationConfig; 13 import com.tc.simulator.listener.ListenerProvider; 14 import com.tctest.runner.AbstractTransparentApp; 15 16 public class FastReadSlowWriteTestApp extends AbstractTransparentApp { 17 18 public static final int NODE_COUNT = 10; 19 SynchronizedInt idGenerator = new SynchronizedInt(0); 20 21 public FastReadSlowWriteTestApp(String appId, ApplicationConfig config, ListenerProvider listenerProvider) { 22 super(appId, config, listenerProvider); 23 } 24 25 public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) { 26 27 TransparencyClassSpec thisSpec = config.getOrCreateSpec(FastReadSlowWriteTestApp.class.getName()); 28 thisSpec.addRoot("idGenerator", "idGenerator"); 29 new SynchronizedIntSpec().visit(visitor, config); 30 31 TransparencyClassSpec readerSpec = config.getOrCreateSpec("com.tctest.TestReader"); 32 TransparencyClassSpec writerSpec = config.getOrCreateSpec("com.tctest.TestWriter"); 33 34 readerSpec.addRoot("stuff", "rootBabyRoot"); 35 writerSpec.addRoot("stuff", "rootBabyRoot"); 36 config.addReadAutolock("* com.tctest.TestReader.*(..)"); 37 config.addWriteAutolock("* com.tctest.TestWriter.*(..)"); 38 } 39 40 public void run() { 41 int myId = idGenerator.increment(); 42 if (myId % 5 == 1) { 43 new TestWriter().write(); 44 } else { 45 new TestReader("" + myId).read(); 46 } 47 48 } 49 50 } 51 | Popular Tags |