# Class WsRemoteEndpointImplClient

java.lang.Object
org.apache.tomcat.websocket.WsRemoteEndpointImplBase
org.apache.tomcat.websocket.WsRemoteEndpointImplClient

All Implemented Interfaces:
  `RemoteEndpoint`

public class WsRemoteEndpointImplClient extends WsRemoteEndpointImplBase
Client-side implementation of a WebSocket remote endpoint.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface RemoteEndpoint

  `RemoteEndpoint.Async, RemoteEndpoint.Basic`

- ## Field Summary

  ### Fields inherited from class WsRemoteEndpointImplBase

  `messagePartInProgress, SENDRESULT_OK, sm`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WsRemoteEndpointImplClient(AsyncChannelWrapper channel)`
  Constructs a client-side remote endpoint for the given channel.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `doClose()`
  Performs the actual close operation on the underlying connection.
  `protected void`
  `doWrite(SendHandler handler, long blockingWriteTimeoutExpiry, ByteBuffer... data)`
  Writes data to the underlying connection.
  `protected ReentrantLock`
  `getLock()`
  Returns the lock used for thread-safe operations.
  `protected boolean`
  `isMasked()`
  Checks if frames should be masked.

  ### Methods inherited from class WsRemoteEndpointImplBase

  `acquireMessagePartInProgressSemaphore, close, flushBatch, getBatchingAllowed, getSendStream, getSendTimeout, getSendWriter, sendBytes, sendBytesByCompletion, sendBytesByFuture, sendObject, sendObjectByCompletion, sendObjectByFuture, sendPartialBytes, sendPartialString, sendPing, sendPong, sendString, sendStringByCompletion, sendStringByFuture, setBatchingAllowed, setEncoders, setSendTimeout, setSession, setTransformation, updateStats`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### WsRemoteEndpointImplClient

    public WsRemoteEndpointImplClient(AsyncChannelWrapper channel)
    Constructs a client-side remote endpoint for the given channel.
    Parameters:
      `channel` - the async channel wrapper

- ## Method Details

  - ### isMasked

    protected boolean isMasked()
    Description copied from class: `WsRemoteEndpointImplBase`
    Checks if frames should be masked.
    Specified by:
      `isMasked` in class `WsRemoteEndpointImplBase`
    Returns:
      true if masking is required

  - ### doWrite

    protected void doWrite(SendHandler handler, long blockingWriteTimeoutExpiry, ByteBuffer... data)
    Description copied from class: `WsRemoteEndpointImplBase`
    Writes data to the underlying connection.
    Specified by:
      `doWrite` in class `WsRemoteEndpointImplBase`
    Parameters:
      `handler` - the send handler
      `blockingWriteTimeoutExpiry` - the timeout expiry time
      `data` - the data buffers to write

  - ### doClose

    protected void doClose()
    Description copied from class: `WsRemoteEndpointImplBase`
    Performs the actual close operation on the underlying connection.
    Specified by:
      `doClose` in class `WsRemoteEndpointImplBase`

  - ### getLock

    protected ReentrantLock getLock()
    Description copied from class: `WsRemoteEndpointImplBase`
    Returns the lock used for thread-safe operations.
    Specified by:
      `getLock` in class `WsRemoteEndpointImplBase`
    Returns:
      the reentrant lock