Package org.apache.guacamole.net
Class AbstractGuacamoleTunnel
- java.lang.Object
-
- org.apache.guacamole.net.AbstractGuacamoleTunnel
-
- All Implemented Interfaces:
GuacamoleTunnel
- Direct Known Subclasses:
SimpleGuacamoleTunnel
public abstract class AbstractGuacamoleTunnel extends Object implements GuacamoleTunnel
Base GuacamoleTunnel implementation which synchronizes access to the underlying reader and writer with reentrant locks. Implementations need only provide the tunnel's UUID and socket.
-
-
Field Summary
-
Fields inherited from interface org.apache.guacamole.net.GuacamoleTunnel
INTERNAL_DATA_OPCODE
-
-
Constructor Summary
Constructors Constructor Description AbstractGuacamoleTunnel()Creates a new GuacamoleTunnel which synchronizes access to the Guacamole instruction stream associated with the underlying GuacamoleSocket.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GuacamoleReaderacquireReader()Acquires exclusive read access to the Guacamole instruction stream and returns a GuacamoleReader for reading from that stream.GuacamoleWriteracquireWriter()Acquires exclusive write access to the Guacamole instruction stream and returns a GuacamoleWriter for writing to that stream.voidclose()Release all resources allocated to this GuacamoleTunnel.booleanhasQueuedReaderThreads()Returns whether there are threads waiting for read access to the Guacamole instruction stream.booleanhasQueuedWriterThreads()Returns whether there are threads waiting for write access to the Guacamole instruction stream.booleanisOpen()Returns whether this GuacamoleTunnel is open, or has been closed.voidreleaseReader()Relinquishes exclusive read access to the Guacamole instruction stream.voidreleaseWriter()Relinquishes exclusive write access to the Guacamole instruction stream.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.guacamole.net.GuacamoleTunnel
getSocket, getUUID
-
-
-
-
Method Detail
-
acquireReader
public GuacamoleReader acquireReader()
Acquires exclusive read access to the Guacamole instruction stream and returns a GuacamoleReader for reading from that stream.- Specified by:
acquireReaderin interfaceGuacamoleTunnel- Returns:
- A GuacamoleReader for reading from the Guacamole instruction stream.
-
releaseReader
public void releaseReader()
Relinquishes exclusive read access to the Guacamole instruction stream. This function should be called whenever a thread finishes using a GuacamoleTunnel's GuacamoleReader.- Specified by:
releaseReaderin interfaceGuacamoleTunnel
-
hasQueuedReaderThreads
public boolean hasQueuedReaderThreads()
Returns whether there are threads waiting for read access to the Guacamole instruction stream.- Specified by:
hasQueuedReaderThreadsin interfaceGuacamoleTunnel- Returns:
- true if threads are waiting for read access the Guacamole instruction stream, false otherwise.
-
acquireWriter
public GuacamoleWriter acquireWriter()
Acquires exclusive write access to the Guacamole instruction stream and returns a GuacamoleWriter for writing to that stream.- Specified by:
acquireWriterin interfaceGuacamoleTunnel- Returns:
- A GuacamoleWriter for writing to the Guacamole instruction stream.
-
releaseWriter
public void releaseWriter()
Relinquishes exclusive write access to the Guacamole instruction stream. This function should be called whenever a thread finishes using a GuacamoleTunnel's GuacamoleWriter.- Specified by:
releaseWriterin interfaceGuacamoleTunnel
-
hasQueuedWriterThreads
public boolean hasQueuedWriterThreads()
Description copied from interface:GuacamoleTunnelReturns whether there are threads waiting for write access to the Guacamole instruction stream.- Specified by:
hasQueuedWriterThreadsin interfaceGuacamoleTunnel- Returns:
- true if threads are waiting for write access the Guacamole instruction stream, false otherwise.
-
close
public void close() throws GuacamoleExceptionDescription copied from interface:GuacamoleTunnelRelease all resources allocated to this GuacamoleTunnel.- Specified by:
closein interfaceGuacamoleTunnel- Throws:
GuacamoleException- if an error occurs while releasing resources.
-
isOpen
public boolean isOpen()
Description copied from interface:GuacamoleTunnelReturns whether this GuacamoleTunnel is open, or has been closed.- Specified by:
isOpenin interfaceGuacamoleTunnel- Returns:
- true if this GuacamoleTunnel is open, false if it is closed.
-
-