Guacamole proxy client. More...
Data Fields | |
guac_socket * | socket |
The guac_socket structure to be used to communicate with the web-client. More... | |
guac_client_state | state |
The current state of the client. More... | |
guac_timestamp | last_received_timestamp |
The time (in milliseconds) of receipt of the last sync message from the client. | |
guac_timestamp | last_sent_timestamp |
The time (in milliseconds) that the last sync message was sent to the client. | |
guac_client_info | info |
Information structure containing properties exposed by the remote client during the initial handshake process. | |
void * | data |
Arbitrary reference to proxy client-specific data. More... | |
guac_client_handle_messages * | handle_messages |
Handler for server messages. More... | |
guac_client_mouse_handler * | mouse_handler |
Handler for mouse events sent by the Gaucamole web-client. More... | |
guac_client_key_handler * | key_handler |
Handler for key events sent by the Guacamole web-client. More... | |
guac_client_clipboard_handler * | clipboard_handler |
Handler for clipboard events sent by the Guacamole web-client. More... | |
guac_client_size_handler * | size_handler |
Handler for size events sent by the Guacamole web-client. More... | |
guac_client_file_handler * | file_handler |
Handler for file events sent by the Guacamole web-client. More... | |
guac_client_pipe_handler * | pipe_handler |
Handler for pipe events sent by the Guacamole web-client. More... | |
guac_client_ack_handler * | ack_handler |
Handler for ack events sent by the Guacamole web-client. More... | |
guac_client_blob_handler * | blob_handler |
Handler for blob events sent by the Guacamole web-client. More... | |
guac_client_end_handler * | end_handler |
Handler for stream end events sent by the Guacamole web-client. More... | |
guac_client_free_handler * | free_handler |
Handler for freeing data when the client is being unloaded. More... | |
guac_client_log_handler * | log_info_handler |
Handler for logging informational messages. More... | |
guac_client_log_handler * | log_error_handler |
Handler for logging error messages. More... | |
char * | connection_id |
The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection. More... | |
Guacamole proxy client.
Represents a Guacamole proxy client (the client which communicates to a server on behalf of Guacamole, on behalf of the web-client).
guac_client_ack_handler* guac_client::ack_handler |
Handler for ack events sent by the Guacamole web-client.
The handler takes a guac_stream which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.
Example:
guac_client_blob_handler* guac_client::blob_handler |
Handler for blob events sent by the Guacamole web-client.
The handler takes a guac_stream which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.
Example:
guac_client_clipboard_handler* guac_client::clipboard_handler |
Handler for clipboard events sent by the Guacamole web-client.
This handler will be called whenever the web-client sets the data of the clipboard.
The handler takes a guac_stream, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.
Example:
char* guac_client::connection_id |
The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection.
This identifier is guaranteed to be unique from all existing connections and will not collide with any available protocol names.
void* guac_client::data |
Arbitrary reference to proxy client-specific data.
Implementors of a Guacamole proxy client can store any data they want here, which can then be retrieved as necessary in the message handlers.
guac_client_end_handler* guac_client::end_handler |
Handler for stream end events sent by the Guacamole web-client.
The handler takes only a guac_stream which contains the stream index. This guac_stream will be disposed of immediately after this event is finished.
Example:
guac_client_file_handler* guac_client::file_handler |
Handler for file events sent by the Guacamole web-client.
The handler takes a guac_stream which contains the stream index and will persist through the duration of the transfer, the mimetype of the file being transferred, and the filename.
Example:
guac_client_free_handler* guac_client::free_handler |
Handler for freeing data when the client is being unloaded.
This handler will be called when the client needs to be unloaded by the proxy, and any data allocated by the proxy client should be freed.
Note that this handler will NOT be called if the client's guac_client_init() function fails.
Implement this handler if you store data inside the client.
Example:
guac_client_handle_messages* guac_client::handle_messages |
Handler for server messages.
If set, this function will be called occasionally by the Guacamole proxy to give the client a chance to handle messages from whichever server it is connected to.
Example:
guac_client_key_handler* guac_client::key_handler |
Handler for key events sent by the Guacamole web-client.
The handler takes the integer X11 keysym associated with the key being pressed/released, and an integer representing whether the key is being pressed (1) or released (0).
Example:
guac_client_log_handler* guac_client::log_error_handler |
Handler for logging error messages.
This handler will be called via guac_client_log_error() when the client needs to log an error.
In general, only programs loading the client should implement this handler, as those are the programs that would provide the logging facilities.
Client implementations should expect these handlers to already be set.
Example:
guac_client_log_handler* guac_client::log_info_handler |
Handler for logging informational messages.
This handler will be called via guac_client_log_info() when the client needs to log information.
In general, only programs loading the client should implement this handler, as those are the programs that would provide the logging facilities.
Client implementations should expect these handlers to already be set.
Example:
guac_client_mouse_handler* guac_client::mouse_handler |
Handler for mouse events sent by the Gaucamole web-client.
The handler takes the integer mouse X and Y coordinates, as well as a button mask containing the bitwise OR of all button values currently being pressed. Those values are:
Button | Value |
---|---|
Left | 1 |
Middle | 2 |
Right | 4 |
Scrollwheel Up | 8 |
Scrollwheel Down | 16 |
Example:
guac_client_pipe_handler* guac_client::pipe_handler |
Handler for pipe events sent by the Guacamole web-client.
The handler takes a guac_stream which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the pipe name.
Example:
guac_client_size_handler* guac_client::size_handler |
Handler for size events sent by the Guacamole web-client.
The handler takes an integer width and integer height, representing the current visible screen area of the client.
Example:
guac_socket* guac_client::socket |
The guac_socket structure to be used to communicate with the web-client.
It is expected that the implementor of any Guacamole proxy client will provide their own mechanism of I/O for their protocol. The guac_socket structure is used only to communicate conveniently with the Guacamole web-client.
guac_client_state guac_client::state |
The current state of the client.
When the client is first allocated, this will be initialized to GUAC_CLIENT_RUNNING. It will remain at GUAC_CLIENT_RUNNING until an event occurs which requires the client to shutdown, at which point the state becomes GUAC_CLIENT_STOPPING.