Class FilteredGuacamoleReader

  • All Implemented Interfaces:
    GuacamoleReader

    public class FilteredGuacamoleReader
    extends Object
    implements GuacamoleReader
    GuacamoleReader which applies a given GuacamoleFilter to observe or alter all read instructions. Instructions may also be dropped or denied by the filter.
    • Constructor Detail

      • FilteredGuacamoleReader

        public FilteredGuacamoleReader​(GuacamoleReader reader,
                                       GuacamoleFilter filter)
        Wraps the given GuacamoleReader, applying the given filter to all read instructions. Future reads will return only instructions which pass the filter.
        Parameters:
        reader - The GuacamoleReader to wrap.
        filter - The filter which dictates which instructions are read, and how.
    • Method Detail

      • available

        public boolean available()
                          throws GuacamoleException
        Description copied from interface: GuacamoleReader
        Returns whether instruction data is available for reading. Note that this does not guarantee an entire instruction is available. If a full instruction is not available, this function can return true, and a call to read() will still block.
        Specified by:
        available in interface GuacamoleReader
        Returns:
        true if instruction data is available for reading, false otherwise.
        Throws:
        GuacamoleException - If an error occurs while checking for available data.
      • read

        public char[] read()
                    throws GuacamoleException
        Description copied from interface: GuacamoleReader
        Reads at least one complete Guacamole instruction, returning a buffer containing one or more complete Guacamole instructions and no incomplete Guacamole instructions. This function will block until at least one complete instruction is available.
        Specified by:
        read in interface GuacamoleReader
        Returns:
        A buffer containing at least one complete Guacamole instruction, or null if no more instructions are available for reading.
        Throws:
        GuacamoleException - If an error occurs while reading from the stream.
      • readInstruction

        public GuacamoleInstruction readInstruction()
                                             throws GuacamoleException
        Description copied from interface: GuacamoleReader
        Reads exactly one complete Guacamole instruction and returns the fully parsed instruction.
        Specified by:
        readInstruction in interface GuacamoleReader
        Returns:
        The next complete instruction from the stream, fully parsed, or null if no more instructions are available for reading.
        Throws:
        GuacamoleException - If an error occurs while reading from the stream, or if the instruction cannot be parsed.