cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

argv.h (3050B)


      1/*
      2 * Licensed to the Apache Software Foundation (ASF) under one
      3 * or more contributor license agreements.  See the NOTICE file
      4 * distributed with this work for additional information
      5 * regarding copyright ownership.  The ASF licenses this file
      6 * to you under the Apache License, Version 2.0 (the
      7 * "License"); you may not use this file except in compliance
      8 * with the License.  You may obtain a copy of the License at
      9 *
     10 *   http://www.apache.org/licenses/LICENSE-2.0
     11 *
     12 * Unless required by applicable law or agreed to in writing,
     13 * software distributed under the License is distributed on an
     14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     15 * KIND, either express or implied.  See the License for the
     16 * specific language governing permissions and limitations
     17 * under the License.
     18 */
     19
     20
     21#ifndef GUAC_TELNET_ARGV_H
     22#define GUAC_TELNET_ARGV_H
     23
     24#include "config.h"
     25
     26#include <guacamole/argv.h>
     27#include <guacamole/user.h>
     28
     29/**
     30 * The name of the parameter that specifies/updates the color scheme used by
     31 * the terminal emulator.
     32 */
     33#define GUAC_TELNET_ARGV_COLOR_SCHEME "color-scheme"
     34
     35/**
     36 * The name of the parameter that specifies/updates the name of the font used
     37 * by the terminal emulator.
     38 */
     39#define GUAC_TELNET_ARGV_FONT_NAME "font-name"
     40
     41/**
     42 * The name of the parameter that specifies/updates the font size used by the
     43 * terminal emulator.
     44 */
     45#define GUAC_TELNET_ARGV_FONT_SIZE "font-size"
     46
     47/**
     48 * Handles a received argument value from a Guacamole "argv" instruction,
     49 * updating the given connection parameter.
     50 */
     51guac_argv_callback guac_telnet_argv_callback;
     52
     53/**
     54 * Sends the current values of all non-sensitive parameters which may be set
     55 * while the connection is running to the given user. Note that the user
     56 * receiving these values will not necessarily be able to set new values
     57 * themselves if their connection is read-only. This function can be used as
     58 * the callback for guac_client_foreach_user() and guac_client_for_owner()
     59 *
     60 * @param user
     61 *     The user that should receive the values of all non-sensitive parameters
     62 *     which may be set while the connection is running.
     63 *
     64 * @param data
     65 *     The guac_telnet_client instance associated with the current connection.
     66 *
     67 * @return
     68 *     Always NULL.
     69 */
     70void* guac_telnet_send_current_argv(guac_user* user, void* data);
     71
     72/**
     73 * Sends the current values of all non-sensitive parameters which may be set
     74 * while the connection is running to the users associated with the provided
     75 * socket. Note that the users receiving these values will not necessarily be
     76 * able to set new values themselves if their connection is read-only.
     77 *
     78 * @param client
     79 *     The client associated with the users that should receive the values of
     80 *     all non-sensitive parameters which may be set while the connection is running.
     81 *
     82 * @param socket
     83 *     The socket to the arguments to the batch of users along.
     84 *
     85 * @return
     86 *     Always NULL.
     87 */
     88void guac_telnet_send_current_argv_batch(
     89        guac_client* client, guac_socket* socket);
     90
     91#endif
     92