Package org.apache.sshd.client.channel
Class AbstractClientChannel
java.lang.Object
org.apache.sshd.common.util.logging.AbstractLoggingBean
org.apache.sshd.common.util.closeable.IoBaseCloseable
org.apache.sshd.common.util.closeable.AbstractCloseable
org.apache.sshd.common.util.closeable.AbstractInnerCloseable
org.apache.sshd.common.channel.AbstractChannel
org.apache.sshd.client.channel.AbstractClientChannel
- All Implemented Interfaces:
Closeable,AutoCloseable,Channel,ClientChannel,ClientSessionHolder,AttributeRepository,AttributeStore,Channel,ChannelListenerManager,StreamingChannel,ChannelStreamWriterResolver,ChannelStreamWriterResolverManager,Closeable,PropertyResolver,SessionContextHolder,SessionHolder<Session>,ExecutorServiceCarrier
- Direct Known Subclasses:
AgentForwardedChannel,ChannelDirectTcpip,ChannelForwardedX11,ChannelSession,TcpipClientChannel
TODO Add javadoc
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sshd.common.channel.AbstractChannel
AbstractChannel.GracefulChannelCloseable, AbstractChannel.GracefulStateNested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
AbstractCloseable.StateNested classes/interfaces inherited from interface org.apache.sshd.common.AttributeRepository
AttributeRepository.AttributeKey<T>Nested classes/interfaces inherited from interface org.apache.sshd.common.channel.StreamingChannel
StreamingChannel.Streaming -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ChannelAsyncInputStreamprotected ChannelAsyncOutputStreamprotected ChannelAsyncInputStreamprivate final Stringprotected OutputStreamprotected final AtomicReference<String>protected final AtomicReference<Integer>protected InputStreamprotected InputStreamprotected OutputStreamprotected InputStreamprotected final AtomicBooleanprotected Stringprotected Stringprotected intprotected OpenFutureprotected OutputStreamprotected StreamingChannel.StreamingFields inherited from class org.apache.sshd.common.channel.AbstractChannel
channelListenerProxy, channelListeners, closeSignaled, eofReceived, eofSent, gracefulFuture, gracefulState, initialized, RESPONSE_BUFFER_GROWTH_FACTOR, service, unregisterSignaledFields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, stateFields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
logFields inherited from interface org.apache.sshd.common.channel.Channel
CHANNEL_EXEC, CHANNEL_SHELL, CHANNEL_SUBSYSTEMFields inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolver
NONEFields inherited from interface org.apache.sshd.common.PropertyResolver
EMPTY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractClientChannel(String type) protectedAbstractClientChannel(String type, Collection<? extends RequestHandler<Channel>> handlers) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddChannelSignalRequestHandlers(EventNotifier<String> notifier) protected abstract voiddoOpen()protected voiddoWriteData(byte[] data, int off, long len) protected voiddoWriteExtendedData(byte[] data, int off, long len) getErr()getIn()protected CloseableAccess to an output stream to send data directly to the remote channel.getOut()voidhandleOpenFailure(Buffer buffer) For a client channel, this method will be called internally by the session when the server has rejected this channel opening.voidhandleOpenSuccess(int recipient, long rwSize, long packetSize, Buffer buffer) For a client channel, this method will be called internally by the session when the confirmation has been received.voidhandleWindowAdjust(Buffer buffer) Invoked whenSSH_MSG_CHANNEL_WINDOW_ADJUSTreceivedopen()For a server channel, this method will actually open the channelvoidsetErr(OutputStream err) voidsetIn(InputStream in) Set an input stream that will be read by this channel and forwarded to the remote channel.voidsetOut(OutputStream out) voidsetStreaming(StreamingChannel.Streaming streaming) protected <C extends Collection<ClientChannelEvent>>
CupdateCurrentChannelState(C state) waitFor(Collection<ClientChannelEvent> mask, long timeout) Waits until any of the specified events in the mask is signaledMethods inherited from class org.apache.sshd.common.channel.AbstractChannel
addChannelListener, addPendingRequest, addRequestHandler, attributeKeys, clearAttributes, computeAttributeIfAbsent, configureWindow, getAttribute, getAttributesCount, getChannelListenerProxy, getChannelStreamWriterResolver, getExecutorService, getId, getLocalWindow, getParentPropertyResolver, getProperties, getRecipient, getRemoteWindow, getRequestHandlers, getSession, handleChannelRegistrationResult, handleChannelRequest, handleChannelUnregistration, handleClose, handleData, handleEof, handleExtendedData, handleFailure, handleInternalRequest, handleRequest, handleSuccess, handleUnknownChannelRequest, init, invokeChannelSignaller, isEofSent, isEofSignalled, isInitialized, notifyStateChanged, notifyStateChanged, preClose, removeAttribute, removeChannelListener, removePendingRequest, removeRequestHandler, resolveChannelStreamWriterResolver, sendEof, sendResponse, sendWindowAdjust, setAttribute, setChannelStreamWriterResolver, setRecipient, signalChannelClosed, signalChannelClosed, signalChannelInitialized, signalChannelInitialized, signalChannelOpenFailure, signalChannelOpenFailure, signalChannelOpenSuccess, signalChannelOpenSuccess, toString, validateIncomingDataSize, writePacketMethods inherited from class org.apache.sshd.common.util.closeable.AbstractInnerCloseable
doCloseGracefully, doCloseImmediatelyMethods inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
addCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, removeCloseFutureListenerMethods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warnMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.sshd.common.AttributeRepository
attributeKeys, getAttribute, getAttributesCountMethods inherited from interface org.apache.sshd.common.AttributeStore
clearAttributes, computeAttributeIfAbsent, removeAttribute, setAttributeMethods inherited from interface org.apache.sshd.common.channel.Channel
addRequestHandler, addRequestHandlers, getId, getLocalWindow, getRecipient, getRemoteWindow, getRequestHandlers, handleChannelRegistrationResult, handleChannelUnregistration, handleClose, handleData, handleEof, handleExtendedData, handleFailure, handleRequest, handleSuccess, init, isEofSignalled, isInitialized, removeRequestHandler, removeRequestHandlers, resolveAttribute, writePacketMethods inherited from interface org.apache.sshd.common.channel.ChannelListenerManager
addChannelListener, getChannelListenerProxy, removeChannelListenerMethods inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolverManager
getChannelStreamWriterResolver, resolveChannelStreamWriter, resolveChannelStreamWriterResolver, setChannelStreamWriterResolverMethods inherited from interface org.apache.sshd.client.channel.ClientChannel
getClientSession, waitForMethods inherited from interface org.apache.sshd.common.Closeable
addCloseFutureListener, close, close, isClosed, isClosing, isOpen, removeCloseFutureListenerMethods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, getParentPropertyResolver, getProperties, getString, getStringProperty, isEmptyMethods inherited from interface org.apache.sshd.common.session.SessionHolder
getSession, getSessionContext
-
Field Details
-
opened
-
streaming
-
asyncIn
-
asyncOut
-
asyncErr
-
in
-
invertedIn
-
out
-
invertedOut
-
err
-
invertedErr
-
exitStatusHolder
-
exitSignalHolder
-
openFailureReason
protected int openFailureReason -
openFailureMsg
-
openFailureLang
-
openFuture
-
channelType
-
-
Constructor Details
-
AbstractClientChannel
-
AbstractClientChannel
protected AbstractClientChannel(String type, Collection<? extends RequestHandler<Channel>> handlers)
-
-
Method Details
-
addChannelSignalRequestHandlers
-
getChannelType
- Specified by:
getChannelTypein interfaceClientChannel- Returns:
- The type of channel reported when it was created
-
getStreaming
- Specified by:
getStreamingin interfaceStreamingChannel
-
setStreaming
- Specified by:
setStreamingin interfaceStreamingChannel
-
getAsyncIn
- Specified by:
getAsyncInin interfaceClientChannel
-
getAsyncOut
- Specified by:
getAsyncOutin interfaceClientChannel
-
getAsyncErr
- Specified by:
getAsyncErrin interfaceClientChannel
-
getInvertedIn
Description copied from interface:ClientChannelAccess to an output stream to send data directly to the remote channel. This can be used instead of usingClientChannel.setIn(java.io.InputStream)method and having the channel polling for data in that stream.- Specified by:
getInvertedInin interfaceClientChannel- Returns:
- an OutputStream to be used to send data
-
getIn
-
setIn
Description copied from interface:ClientChannelSet an input stream that will be read by this channel and forwarded to the remote channel. Note that using such a stream will create an additional thread for pumping the stream which will only be able to end when that stream is actually closed or some data is read. It is recommended to use theClientChannel.getInvertedIn()method instead and write data directly.- Specified by:
setInin interfaceClientChannel- Parameters:
in- an InputStream to be polled and forwarded
-
getInvertedOut
- Specified by:
getInvertedOutin interfaceClientChannel
-
getOut
-
setOut
- Specified by:
setOutin interfaceClientChannel
-
getInvertedErr
- Specified by:
getInvertedErrin interfaceClientChannel
-
getErr
-
setErr
- Specified by:
setErrin interfaceClientChannel
-
getInnerCloseable
- Overrides:
getInnerCloseablein classAbstractChannel
-
waitFor
Description copied from interface:ClientChannelWaits until any of the specified events in the mask is signaled- Specified by:
waitForin interfaceClientChannel- Parameters:
mask- TheClientChannelEvents masktimeout- The timeout to wait (msec.) - if non-positive then forever- Returns:
- The actual signaled event - includes
ClientChannelEvent.TIMEOUTif timeout expired before the expected event was signaled
-
getChannelState
- Specified by:
getChannelStatein interfaceClientChannel- Returns:
- A snapshot of the current channel state
- See Also:
-
updateCurrentChannelState
-
open
- Specified by:
openin interfaceClientChannel- Throws:
IOException
-
open
Description copied from interface:ChannelFor a server channel, this method will actually open the channel- Specified by:
openin interfaceChannel- Parameters:
recipient- Recipient identifierrwSize- Read/Write window size (uint32)packetSize- Preferred maximum packet size (uint32)buffer- IncomingBufferthat triggered the call. Note: the buffer's read position is exactly after the information that read to this call was decoded- Returns:
- An
OpenFuturefor the channel open request
-
handleOpenSuccess
Description copied from interface:ChannelFor a client channel, this method will be called internally by the session when the confirmation has been received.- Specified by:
handleOpenSuccessin interfaceChannel- Parameters:
recipient- Recipient identifierrwSize- Read/Write window size (uint32)packetSize- Preferred maximum packet size (uint32)buffer- IncomingBufferthat triggered the call. Note: the buffer's read position is exactly after the information that read to this call was decoded
-
doOpen
- Throws:
IOException
-
handleOpenFailure
Description copied from interface:ChannelFor a client channel, this method will be called internally by the session when the server has rejected this channel opening.- Specified by:
handleOpenFailurein interfaceChannel- Parameters:
buffer- IncomingBufferthat triggered the call. Note: the buffer's read position is exactly after the information that read to this call was decoded
-
doWriteData
- Specified by:
doWriteDatain classAbstractChannel- Throws:
IOException
-
doWriteExtendedData
- Specified by:
doWriteExtendedDatain classAbstractChannel- Throws:
IOException
-
handleWindowAdjust
Description copied from interface:ChannelInvoked whenSSH_MSG_CHANNEL_WINDOW_ADJUSTreceived- Specified by:
handleWindowAdjustin interfaceChannel- Overrides:
handleWindowAdjustin classAbstractChannel- Parameters:
buffer- The rest of the message dataBufferafter decoding the channel identifiers- Throws:
IOException- If failed to handle the message
-
getExitStatus
- Specified by:
getExitStatusin interfaceClientChannel- Returns:
- The signaled exit status via "exit-status" request -
nullif not signaled
-
getExitSignal
- Specified by:
getExitSignalin interfaceClientChannel- Returns:
- The signaled exit signal via "exit-signal" -
nullif not signaled
-