cscg24-guacamole

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

argv.h (3048B)


      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_KUBERNETES_ARGV_H
     22#define GUAC_KUBERNETES_ARGV_H
     23
     24#include "config.h"
     25#include "kubernetes.h"
     26
     27#include <guacamole/argv.h>
     28#include <guacamole/user.h>
     29
     30/**
     31 * The name of the parameter that specifies/updates the color scheme used by
     32 * the terminal emulator.
     33 */
     34#define GUAC_KUBERNETES_ARGV_COLOR_SCHEME "color-scheme"
     35
     36/**
     37 * The name of the parameter that specifies/updates the name of the font used
     38 * by the terminal emulator.
     39 */
     40#define GUAC_KUBERNETES_ARGV_FONT_NAME "font-name"
     41
     42/**
     43 * The name of the parameter that specifies/updates the font size used by the
     44 * terminal emulator.
     45 */
     46#define GUAC_KUBERNETES_ARGV_FONT_SIZE "font-size"
     47
     48/**
     49 * Handles a received argument value from a Guacamole "argv" instruction,
     50 * updating the given connection parameter.
     51 */
     52guac_argv_callback guac_kubernetes_argv_callback;
     53
     54/**
     55 * Sends the current values of all non-sensitive parameters which may be set
     56 * while the connection is running to the given user. Note that the user
     57 * receiving these values will not necessarily be able to set new values
     58 * themselves if their connection is read-only. This function can be used as
     59 * the callback for guac_client_foreach_user() and guac_client_for_owner().
     60 *
     61 * @param user
     62 *     The user that should receive the values of all non-sensitive parameters
     63 *     which may be set while the connection is running.
     64 *
     65 * @param data
     66 *     The guac_kubernetes_client instance associated with the current
     67 *     connection.
     68 *
     69 * @return
     70 *     Always NULL.
     71 */
     72void* guac_kubernetes_send_current_argv(guac_user* user, void* data);
     73
     74/**
     75 * Sends the current values of all non-sensitive parameters which may be set
     76 * while the connection is running to the all users associated with the
     77 * provided socket. Note that the users receiving these values will not
     78 * necessarily be able to set new values themselves if their connection is
     79 * read-only.
     80 *
     81 * @param client
     82 *     The client associated with the users who should receive the values of
     83 *     all non-sensitive parameters which may be set while the connection is
     84 *     running.
     85 *
     86 * @return
     87 *     Always NULL.
     88 */
     89void* guac_kubernetes_send_current_argv_batch(
     90        guac_client* client, guac_socket* socket);
     91
     92#endif
     93