Package org.eclipse.net4j.signal
Class SignalProtocol<INFRA_STRUCTURE>
- java.lang.Object
-
- org.eclipse.net4j.util.event.Notifier
-
- org.eclipse.net4j.util.lifecycle.Lifecycle
-
- org.eclipse.spi.net4j.Protocol<INFRA_STRUCTURE>
-
- org.eclipse.net4j.signal.SignalProtocol<INFRA_STRUCTURE>
-
- All Implemented Interfaces:
IBufferHandler,ILocationAware,IProtocol<INFRA_STRUCTURE>,IProtocol2<INFRA_STRUCTURE>,ISignalProtocol<INFRA_STRUCTURE>,ISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>,org.eclipse.net4j.util.concurrent.IExecutorServiceProvider,org.eclipse.net4j.util.event.INotifier,org.eclipse.net4j.util.event.INotifier.INotifier2,org.eclipse.net4j.util.lifecycle.IDeactivateable,org.eclipse.net4j.util.lifecycle.ILifecycle,org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation,org.eclipse.net4j.util.security.IUserAware
- Direct Known Subclasses:
AuthenticatingSignalProtocol,HeartBeatProtocol,HeartBeatProtocol.Server
public class SignalProtocol<INFRA_STRUCTURE> extends Protocol<INFRA_STRUCTURE> implements ISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>
The default implementation of asignal protocol.On the
receiver side(s)of protocol thecreateSignalReactor()method has to be overridden to create appropriate peer instances for incomingsignals.- Author:
- Eike Stepper
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSignalProtocol.InvalidSignalIDExceptionstatic classSignalProtocol.TimeoutChangedEvent-
Nested classes/interfaces inherited from class org.eclipse.spi.net4j.Protocol
Protocol.InfraStructureChangedEvent
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.ILocationAware
ILocationAware.Location
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier
org.eclipse.net4j.util.event.INotifier.INotifier2
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.signal.ISignalProtocol
ISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>
-
-
Field Summary
Fields Modifier and Type Field Description static longCOMPRESSED_STRINGS_ACKNOWLEDGE_TIMEOUTstatic shortSIGNAL_ACKNOWLEDGE_COMPRESSED_STRINGSstatic shortSIGNAL_MONITOR_CANCELEDstatic shortSIGNAL_MONITOR_PROGRESSstatic shortSIGNAL_REMOTE_EXCEPTIONstatic shortSIGNAL_SET_TIMEOUT-
Fields inherited from interface org.eclipse.net4j.protocol.IProtocol2
UNSPECIFIED_VERSION
-
Fields inherited from interface org.eclipse.net4j.signal.ISignalProtocol
DEFAULT_TIMEOUT, NO_TIMEOUT
-
-
Constructor Summary
Constructors Constructor Description SignalProtocol(java.lang.String type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddStreamWrapper(org.eclipse.net4j.util.io.IStreamWrapper streamWrapper)voidclose()protected SignalReactorcreateSignalReactor(short signalID)Returns a new signal instance to serve the given signal ID ornullif the signal ID is invalid/unknown for this protocol.protected voiddoBeforeDeactivate()protected voiddoDeactivate()longgetReceivedSignals()longgetSentSignals()org.eclipse.net4j.util.io.IStreamWrappergetStreamWrapper()protected org.eclipse.net4j.util.io.StringCompressorgetStringCompressor()longgetTimeout()voidhandleBuffer(IBuffer buffer)Handles a given (incoming) buffer.protected voidhandleChannelDeactivation()protected booleanisSendingTimeoutChanges()Returnstrueby default, override to change this behavior.IChannelopen(IConnector connector)protected SignalReactorprovideSignalReactor(short signalID)voidsetStreamWrapper(org.eclipse.net4j.util.io.IStreamWrapper streamWrapper)voidsetTimeout(long timeout)Equivalent to calling SignalProtocol.setTimeout(timeout, false).booleansetTimeout(long timeout, boolean useOldTimeoutToSendNewOne)Update the timeout used for signal end of stream waiting time.java.lang.StringtoString()booleanwaitForSignals(long timeout)-
Methods inherited from class org.eclipse.spi.net4j.Protocol
doBeforeActivate, getBufferProvider, getChannel, getExecutorService, getInfraStructure, getLocation, getType, getUserID, getVersion, isClient, isServer, setChannel, setExecutorService, setInfraStructure, setUserID
-
Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, dump, getLifecycleState, isActive, isDeferredActivation
-
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.net4j.ILocationAware
getLocation, isClient, isServer
-
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
-
Methods inherited from interface org.eclipse.net4j.protocol.IProtocol
getBufferProvider, getChannel, getExecutorService, getInfraStructure, getType, setChannel, setExecutorService, setInfraStructure
-
-
-
-
Field Detail
-
COMPRESSED_STRINGS_ACKNOWLEDGE_TIMEOUT
public static final long COMPRESSED_STRINGS_ACKNOWLEDGE_TIMEOUT
- Since:
- 4.7
-
SIGNAL_REMOTE_EXCEPTION
public static final short SIGNAL_REMOTE_EXCEPTION
- Since:
- 2.0
- See Also:
- Constant Field Values
-
SIGNAL_MONITOR_CANCELED
public static final short SIGNAL_MONITOR_CANCELED
- Since:
- 2.0
- See Also:
- Constant Field Values
-
SIGNAL_MONITOR_PROGRESS
public static final short SIGNAL_MONITOR_PROGRESS
- Since:
- 2.0
- See Also:
- Constant Field Values
-
SIGNAL_SET_TIMEOUT
public static final short SIGNAL_SET_TIMEOUT
- Since:
- 4.1
- See Also:
- Constant Field Values
-
SIGNAL_ACKNOWLEDGE_COMPRESSED_STRINGS
public static final short SIGNAL_ACKNOWLEDGE_COMPRESSED_STRINGS
- Since:
- 4.7
- See Also:
- Constant Field Values
-
-
Method Detail
-
getTimeout
public long getTimeout()
- Specified by:
getTimeoutin interfaceISignalProtocol<INFRA_STRUCTURE>- Since:
- 2.0
-
setTimeout
public void setTimeout(long timeout)
Equivalent to calling SignalProtocol.setTimeout(timeout, false).- Specified by:
setTimeoutin interfaceISignalProtocol<INFRA_STRUCTURE>- Since:
- 2.0
-
setTimeout
public boolean setTimeout(long timeout, boolean useOldTimeoutToSendNewOne)Update the timeout used for signal end of stream waiting time.- Parameters:
timeout- the new timeoutuseOldTimeoutToSendNewOne-trueto use the old timeout,falseto use the new specified one to sent to server side the new specified timeout- Returns:
trueif the new specified timeout has correctly been sent NOTE: this second parameter is useful mostly for test to be able to set a to small timeout- Since:
- 4.4
-
getStreamWrapper
public org.eclipse.net4j.util.io.IStreamWrapper getStreamWrapper()
- Specified by:
getStreamWrapperin interfaceISignalProtocol<INFRA_STRUCTURE>
-
setStreamWrapper
public void setStreamWrapper(org.eclipse.net4j.util.io.IStreamWrapper streamWrapper)
- Specified by:
setStreamWrapperin interfaceISignalProtocol<INFRA_STRUCTURE>
-
addStreamWrapper
public void addStreamWrapper(org.eclipse.net4j.util.io.IStreamWrapper streamWrapper)
- Specified by:
addStreamWrapperin interfaceISignalProtocol<INFRA_STRUCTURE>
-
getSentSignals
public long getSentSignals()
- Specified by:
getSentSignalsin interfaceISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>- Since:
- 4.13
-
getReceivedSignals
public long getReceivedSignals()
- Specified by:
getReceivedSignalsin interfaceISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>
-
open
public IChannel open(IConnector connector)
- Specified by:
openin interfaceISignalProtocol<INFRA_STRUCTURE>- Since:
- 2.0
-
close
public void close()
- Specified by:
closein interfaceISignalProtocol<INFRA_STRUCTURE>- Since:
- 2.0
-
waitForSignals
public boolean waitForSignals(long timeout)
-
handleBuffer
public void handleBuffer(IBuffer buffer)
Handles a given (incoming) buffer. Creates a signal to act upon the given buffer or uses a previously created signal.- Specified by:
handleBufferin interfaceIBufferHandler- Parameters:
buffer- The buffer to be handled.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.eclipse.net4j.util.lifecycle.Lifecycle
-
doBeforeDeactivate
protected void doBeforeDeactivate() throws java.lang.Exception- Overrides:
doBeforeDeactivatein classorg.eclipse.net4j.util.lifecycle.Lifecycle- Throws:
java.lang.Exception
-
doDeactivate
protected void doDeactivate() throws java.lang.Exception- Overrides:
doDeactivatein classProtocol<INFRA_STRUCTURE>- Throws:
java.lang.Exception
-
handleChannelDeactivation
protected void handleChannelDeactivation()
- Overrides:
handleChannelDeactivationin classProtocol<INFRA_STRUCTURE>
-
provideSignalReactor
protected final SignalReactor provideSignalReactor(short signalID)
-
createSignalReactor
protected SignalReactor createSignalReactor(short signalID)
Returns a new signal instance to serve the given signal ID ornullif the signal ID is invalid/unknown for this protocol.
-
isSendingTimeoutChanges
protected boolean isSendingTimeoutChanges()
Returnstrueby default, override to change this behavior.- Since:
- 4.1
-
getStringCompressor
protected org.eclipse.net4j.util.io.StringCompressor getStringCompressor()
- Since:
- 4.7
-
-