litesoft
@ 947
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 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.eventbus.client.nonpublic; import org.litesoft.GWT.client.*; import org.litesoft.GWT.eventbus.client.*; import org.litesoft.GWT.eventbus.client.rpc.*; import org.litesoft.logger.*; import com.google.gwt.user.client.*; public class ClientEventBus extends AbstractPeerSupportingEventBus { public ClientEventBus( int pClientIdNumber ) { super( "Client", pClientIdNumber, TimedRunnableManager.INSTANCE, AlertUnexpectedEventPackageHandler.INSTANCE ); } public void initialize( ChannelServiceAsync pChannelServiceAsync, int pPollSecs, Logger pLogger ) { if ( pLogger == null ) { pLogger = createLogger(); } ClientSideRemotePeerService zPeerService = new ClientSideRemotePeerService( this, // pChannelServiceAsync, // pPollSecs ); initialize( pLogger, new StatePeerSupportingEventBusSuspended( pLogger, this, zPeerService ) ); } public void release() { switchFromSuspendedToRegular().releaseCollected(); } public void pollNow() { /* * Deferred execution. Works around a Safari bug where calling from a * nested iframe somehow corrupts the RPC endpoint url. (It's not so * much the delay as the context that this is called from). */ DeferredCommand.addCommand( new Command() { public void execute() { publish( PingEventPackage.INSTANCE ); } } ); } // todo: Client -> Server of Exception 'e': mEventBus.getTypeNameOf(e), + ":" + e.getMessage() } |