Class ProxyConnectionFactory.ProxyEndPoint
- All Implemented Interfaces:
- Closeable, AutoCloseable, EndPoint, EndPoint.Wrapper
- Enclosing class:
- ProxyConnectionFactory
- 
Nested Class SummaryNested classes/interfaces inherited from interface EndPointEndPoint.Pipe, EndPoint.SslSessionData, EndPoint.Wrapper
- 
Field Summary
- 
Constructor SummaryConstructorsConstructorDescriptionProxyEndPoint(EndPoint endPoint, SocketAddress local, SocketAddress remote) ProxyEndPoint(EndPoint endPoint, SocketAddress local, SocketAddress remote, Map<Integer, byte[]> tlvs, EndPoint.SslSessionData sslSessionData) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidCloses any backing stream associated with the endpoint, passing a possiblynullfailure cause.intfill(ByteBuffer buffer) Fills the passed buffer with data from this endpoint.voidfillInterested(Callback callback) Requests callback methods to be invoked when a call toEndPoint.fill(ByteBuffer)would return data or EOF.booleanflush(ByteBuffer... buffer) Flushes data from the passed header/buffer to this endpoint.longlongReturns the idle timeout in ms.Returns the SslSessionData of a secure end point.byte[]getTLV(int type) Gets a TLV vector, see section 2.2.7 of the PROXY protocol specification.booleanbooleanTests if the input is shutdown.booleanisOpen()booleanTests if output is shutdown.voidCallback method invoked when thisEndPointis closed.voidonOpen()Callback method invoked when this EndPoint is opened.voidsetConnection(Connection connection) voidsetIdleTimeout(long idleTimeout) Sets the idle timeout.voidShuts down the output.toString()booleantryFillInterested(Callback callback) Requests callback methods to be invoked when a call toEndPoint.fill(ByteBuffer)would return data or EOF.unwrap()voidupgrade(Connection newConnection) Upgrades this EndPoint from the current connection to the given new connection.voidwrite(Callback callback, ByteBuffer... buffers) Writes the given buffers viaEndPoint.flush(ByteBuffer...)and invokes callback methods when either all the data has been flushed or an error occurs.
- 
Constructor Details- 
ProxyEndPoint
- 
ProxyEndPointpublic ProxyEndPoint(EndPoint endPoint, SocketAddress local, SocketAddress remote, Map<Integer, byte[]> tlvs, EndPoint.SslSessionData sslSessionData) 
 
- 
- 
Method Details- 
getSslSessionDataDescription copied from interface:EndPointReturns the SslSessionData of a secure end point. - Specified by:
- getSslSessionDatain interface- EndPoint
- Returns:
- A EndPoint.SslSessionDatainstance (with possibly null field values) if secure, elsenull.
 
- 
unwrap- Specified by:
- unwrapin interface- EndPoint.Wrapper
- Returns:
- The wrapped EndPoint
 
- 
getTLVpublic byte[] getTLV(int type) Gets a TLV vector, see section 2.2.7 of the PROXY protocol specification. - Parameters:
- type- the TLV type or subtype
- Returns:
- the TLV value or null if not present.
 
- 
close
- 
fillDescription copied from interface:EndPointFills the passed buffer with data from this endpoint. The bytes are appended to any data already in the buffer by writing from the buffers limit up to its capacity. The limit is updated to include the filled bytes. - Specified by:
- fillin interface- EndPoint
- Parameters:
- buffer- The buffer to fill. The position and limit are modified during the fill. After the operation, the position is unchanged and the limit is increased to reflect the new data filled.
- Returns:
- an intvalue indicating the number of bytes filled or -1 if EOF is read or the input is shutdown.
- Throws:
- IOException- if the endpoint is closed.
 
- 
fillInterestedDescription copied from interface:EndPointRequests callback methods to be invoked when a call to EndPoint.fill(ByteBuffer)would return data or EOF.- Specified by:
- fillInterestedin interface- EndPoint
- Parameters:
- callback- the callback to call when an error occurs or we are readable. The callback may implement the- Invocableinterface to self declare its blocking status. Non-blocking callbacks may be called more efficiently without dispatch delays.
- Throws:
- ReadPendingException- if another read operation is concurrent.
 
- 
flushDescription copied from interface:EndPointFlushes data from the passed header/buffer to this endpoint. As many bytes as can be consumed are taken from the header/buffer position up until the buffer limit. The header/buffers position is updated to indicate how many bytes have been consumed. - Specified by:
- flushin interface- EndPoint
- Parameters:
- buffer- the buffers to flush
- Returns:
- True IFF all the buffers have been consumed and the endpoint has flushed the data to its destination (ie is not buffering any data).
- Throws:
- IOException- If the endpoint is closed or output is shutdown.
 
- 
getConnection- Specified by:
- getConnectionin interface- EndPoint
- Returns:
- the Connectionassociated with this EndPoint
- See Also:
 
- 
setConnection- Specified by:
- setConnectionin interface- EndPoint
- Parameters:
- connection- the- Connectionassociated with this EndPoint
- See Also:
 
- 
getCreatedTimeStamppublic long getCreatedTimeStamp()- Specified by:
- getCreatedTimeStampin interface- EndPoint
- Returns:
- the epoch time in milliseconds when this EndPoint was created
 
- 
getIdleTimeoutpublic long getIdleTimeout()Description copied from interface:EndPointReturns the idle timeout in ms. The idle timeout is the time the endpoint can be idle before its close is initiated. A timeout less than or equal to 0implies an infinite timeout.- Specified by:
- getIdleTimeoutin interface- EndPoint
- Returns:
- the idle timeout in ms
 
- 
setIdleTimeoutpublic void setIdleTimeout(long idleTimeout) Description copied from interface:EndPointSets the idle timeout. - Specified by:
- setIdleTimeoutin interface- EndPoint
- Parameters:
- idleTimeout- the idle timeout in MS. Timeout <= 0 implies an infinite timeout
 
- 
getLocalAddress- Specified by:
- getLocalAddressin interface- EndPoint
- Returns:
- The local InetSocketAddress to which this EndPointis bound, ornullif thisEndPointis not bound to a Socket address.
 
- 
getLocalSocketAddress- Specified by:
- getLocalSocketAddressin interface- EndPoint
- Returns:
- the local SocketAddress to which this EndPointis bound ornullif thisEndPointis not bound to a Socket address.
 
- 
getRemoteAddress- Specified by:
- getRemoteAddressin interface- EndPoint
- Returns:
- The remote InetSocketAddress to which this EndPointis connected, ornullif thisEndPointis not connected to a Socket address.
 
- 
getRemoteSocketAddress- Specified by:
- getRemoteSocketAddressin interface- EndPoint
- Returns:
- The remote SocketAddress to which this EndPointis connected, ornullif thisEndPointis not connected to a Socket address.
 
- 
getTransport- Specified by:
- getTransportin interface- EndPoint
- Returns:
- The underlying transport object (socket, channel, etc.)
 
- 
isFillInterestedpublic boolean isFillInterested()- Specified by:
- isFillInterestedin interface- EndPoint
- Returns:
- whether EndPoint.fillInterested(Callback)has been called, butEndPoint.fill(ByteBuffer)has not yet been called
 
- 
isInputShutdownpublic boolean isInputShutdown()Description copied from interface:EndPointTests if the input is shutdown. The input is shutdown if an EOF has been read while doing a EndPoint.fill(ByteBuffer). Once the input is shutdown, all calls toEndPoint.fill(ByteBuffer)will return -1, until such time as the end point is close, when they will returnEofException.- Specified by:
- isInputShutdownin interface- EndPoint
- Returns:
- true if the input is shutdown or the endpoint is closed.
 
- 
isOpen
- 
isOutputShutdownpublic boolean isOutputShutdown()Description copied from interface:EndPointTests if output is shutdown. The output is shutdown by a call to EndPoint.shutdownOutput()orEndPoint.close().- Specified by:
- isOutputShutdownin interface- EndPoint
- Returns:
- true if the output is shutdown or the endpoint is closed.
 
- 
onClose
- 
onOpen
- 
shutdownOutputpublic void shutdownOutput()Description copied from interface:EndPointShuts down the output. This call indicates that no more data will be sent from this endpoint and that the remote endpoint should read an EOF once all previously sent data has been read. Shutdown may be done either at the TCP/IP level, as a protocol exchange (for example, TLS close handshake) or both. If the endpoint has EndPoint.isInputShutdown()true, then this call has the same effect asEndPoint.close().- Specified by:
- shutdownOutputin interface- EndPoint
 
- 
toString
- 
tryFillInterestedDescription copied from interface:EndPointRequests callback methods to be invoked when a call to EndPoint.fill(ByteBuffer)would return data or EOF.- Specified by:
- tryFillInterestedin interface- EndPoint
- Parameters:
- callback- the callback to call when an error occurs or we are readable. The callback may implement the- Invocableinterface to self declare its blocking status. Non-blocking callbacks may be called more efficiently without dispatch delays.
- Returns:
- true if set
 
- 
upgradeDescription copied from interface:EndPointUpgrades this EndPoint from the current connection to the given new connection. Closes the current connection, links this EndPoint to the new connection and then opens the new connection. If the current connection is an instance of Connection.UpgradeFromthen a buffer of unconsumed bytes is requested. If the buffer of unconsumed bytes is non-null and non-empty, then the new connection is tested: if it is an instance ofConnection.UpgradeTo, then the unconsumed buffer is passed to the new connection; otherwise, an exception is thrown since there are unconsumed bytes that cannot be consumed by the new connection.
- 
writeDescription copied from interface:EndPointWrites the given buffers via EndPoint.flush(ByteBuffer...)and invokes callback methods when either all the data has been flushed or an error occurs.- Specified by:
- writein interface- EndPoint
- Parameters:
- callback- the callback to call when an error occurs or the write completed. The callback may implement the- Invocableinterface to self declare its blocking status. Non-blocking callbacks may be called more efficiently without dispatch delays.
- buffers- one or more- ByteBuffers that will be flushed.
- Throws:
- WritePendingException- if another write operation is concurrent.
 
 
-