litesoft
@ 950
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.eventbus.client.nonpublic; import org.litesoft.GWT.eventbus.client.*; import org.litesoft.logger.*; import java.util.*; public class StatePeerSupportingEventBusSuspended extends StatePeerSupportingEventBus { private Logger mOriginalLogger; private TrackingEBMcollector mCollector; private RemotePeerService mRemotePeerService; public StatePeerSupportingEventBusSuspended( Logger pLogger, // PeerSupportingEventBus pPeerSupportingEventBus, // RemotePeerService pRemotePeerService ) { super( PrefixingLogger.decorate( "(Collecting)", pLogger ), pPeerSupportingEventBus, new SavedEventsExpectingResponseTracker( pLogger ) ); mOriginalLogger = pLogger; mCollector = new TrackingEBMcollector( mLogger ); mRemotePeerService = pRemotePeerService; } public void disposing() { } public synchronized void dispose() { mRemotePeerService = null; if ( mCollector != null ) { mCollector.clear(); mCollector = null; // should be passed to Regular... } if ( mSavedEventsExpectingResponseTracker != null ) { mSavedEventsExpectingResponseTracker.clear(); mSavedEventsExpectingResponseTracker = null; // should be passed to Regular... } super.dispose(); } public synchronized IStatePeerSupportingEventBus suspendedToRegular( EventConstrictor pEventConstrictor, EventBus pEventBus ) { StatePeerSupportingEventBusRegular regular = // new StatePeerSupportingEventBusRegular( mOriginalLogger, mPeerSupportingEventBus, // pEventConstrictor, pEventBus, // new ProcessingManagerClientImpl(), // mRemotePeerService, // mCollector, // mSavedEventsExpectingResponseTracker ); mCollector = null; mSavedEventsExpectingResponseTracker = null; return regular; } public synchronized void publishExpectingResponse( EventPackage pPackage ) { String sourceName = pPackage.getSourceName(); if ( !mCollector.hasPendingSubscribeWith( sourceName ) ) { throw new IllegalArgumentException( "No Subscribers for '" + sourceName + "' in Event: " + pPackage ); } mSavedEventsExpectingResponseTracker.add( pPackage ); } public boolean releaseCollected() { return true; // Do nothing... } protected EventBusMessageCollector getEventBusMessageCollector() { return mCollector; } public String toString() { return super.toString() + "Suspended"; } private static class TrackingEBMcollector extends EventBusMessageCollector { private Set mPendingSubscribeWiths = new HashSet(); public TrackingEBMcollector( Logger pLogger ) { super( pLogger ); } public boolean hasPendingSubscribeWith( String pName ) { return mPendingSubscribeWiths.contains( pName ); } public void addSubscribes( EventSubscriptionStructure[] pSubscriptions ) { super.addSubscribes( pSubscriptions ); for ( int i = 0; i < pSubscriptions.length; i++ ) { EventSubscriptionStructure subscription = pSubscriptions[i]; if ( subscription != null ) { mPendingSubscribeWiths.add( subscription.getSubscribeWith() ); } } } public void addUnsubscribes( EventSubscriptionStructure[] pSubscriptions ) { super.addUnsubscribes( pSubscriptions ); for ( int i = 0; i < pSubscriptions.length; i++ ) { EventSubscriptionStructure subscription = pSubscriptions[i]; if ( subscription != null ) { mPendingSubscribeWiths.remove( subscription.getSubscribeWith() ); } } } public void clear() { super.clear(); mPendingSubscribeWiths.clear(); } } } |
Commits for litesoft/trunk/Java/GWT/OldClient/src/org/litesoft/GWT/eventbus/client/nonpublic/StatePeerSupportingEventBusSuspended.java
Revision | Author | Commited | Message |
---|---|---|---|
950 Diff | GeorgeS | Thu 19 Jun, 2014 17:57:04 +0000 | New Lines |
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |