cscg24-guacamole

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

parser-types.h (1836B)


      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_PARSER_TYPES_H
     22#define _GUAC_PARSER_TYPES_H
     23
     24/**
     25 * Type definitions related to parsing the Guacamole protocol.
     26 *
     27 * @file parser-types.h
     28 */
     29
     30/**
     31 * All possible states of the instruction parser.
     32 */
     33typedef enum guac_parse_state {
     34
     35    /**
     36     * The parser is currently waiting for data to complete the length prefix
     37     * of the current element of the instruction.
     38     */
     39    GUAC_PARSE_LENGTH,
     40
     41    /**
     42     * The parser has finished reading the length prefix and is currently
     43     * waiting for data to complete the content of the instruction.
     44     */
     45    GUAC_PARSE_CONTENT,
     46
     47    /**
     48     * The instruction has been fully parsed.
     49     */
     50    GUAC_PARSE_COMPLETE,
     51
     52    /**
     53     * The instruction cannot be parsed because of a protocol error.
     54     */
     55    GUAC_PARSE_ERROR
     56
     57} guac_parse_state;
     58
     59/**
     60 * A Guacamole protocol parser, which reads individual instructions, filling
     61 * its own internal structure with the most recently read instruction data.
     62 */
     63typedef struct guac_parser guac_parser;
     64
     65#endif
     66