From 00e2eb4fd0266c5be01e3a527a66aaad5ab4b634 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:47:37 +0200 Subject: Adding upstream version 0.19.0. Signed-off-by: Daniel Baumann --- include/ixion/interface/session_handler.hpp | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 include/ixion/interface/session_handler.hpp (limited to 'include/ixion/interface/session_handler.hpp') diff --git a/include/ixion/interface/session_handler.hpp b/include/ixion/interface/session_handler.hpp new file mode 100644 index 0000000..7ed2a8e --- /dev/null +++ b/include/ixion/interface/session_handler.hpp @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __IXION_INTERFACE_SESSION_HANDLER_HPP__ +#define __IXION_INTERFACE_SESSION_HANDLER_HPP__ + +#include "../formula_opcode.hpp" +#include "../formula_function_opcode.hpp" +#include "../env.hpp" + +#include + +namespace ixion { + +class formula_cell; +class formula_result; +struct address_t; +struct range_t; +struct abs_address_t; +struct table_t; + +namespace iface { + +class IXION_DLLPUBLIC session_handler +{ +public: + virtual ~session_handler(); + + virtual void begin_cell_interpret(const abs_address_t& pos) = 0; + virtual void end_cell_interpret() = 0; + virtual void set_result(const formula_result& result) = 0; + virtual void set_invalid_expression(std::string_view msg) = 0; + virtual void set_formula_error(std::string_view msg) = 0; + virtual void push_token(fopcode_t fop) = 0; + virtual void push_value(double val) = 0; + virtual void push_string(size_t sid) = 0; + virtual void push_single_ref(const address_t& addr, const abs_address_t& pos) = 0; + virtual void push_range_ref(const range_t& range, const abs_address_t& pos) = 0; + virtual void push_table_ref(const table_t& table) = 0; + virtual void push_function(formula_function_t foc) = 0; +}; + +}} + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3