/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// This program and the accompanying materials are made available under the4// terms of the Eclipse Public License 2.0 which is available at5// https://www.eclipse.org/legal/epl-2.0/6// This Source Code may also be made available under the following Secondary7// Licenses when the conditions for such availability set forth in the Eclipse8// Public License 2.0 are satisfied: GNU General Public License, version 29// or later which is available at10// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html11// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later12/****************************************************************************/13/// @file SystemFrame.h14/// @author Daniel Krajzewicz15/// @author Michael Behrisch16/// @date Mon, 23.06.200317///18// A set of actions common to all applications19/****************************************************************************/20#pragma once21#include <config.h>222324// ===========================================================================25// class declarations26// ===========================================================================2728class OptionsCont;2930// ===========================================================================31// class definitions32// ===========================================================================33/**34* @class SystemFrame35* @brief A set of actions common to all applications36*37* As almost all applications within the SUMO-package share the same38* initialisation procedure, it is encapsulated within this class.39*40* Only two things are done herein, so far. The first is to insert41* options into the given options container that are used for dealing42* with the application's configuration.43*44* Additionally, a closing method may be found, which closes all used45* subsystems.46*/47class SystemFrame {4849public:50/** @brief Adds configuration options to the given container51*52* @param[in] oc The options container to add the options to53* @todo let the container be retrieved54*/55static void addConfigurationOptions(OptionsCont& oc);5657/** @brief Adds reporting options to the given container58*59* @param[in] oc The options container to add the options to60* @todo let the container be retrieved61*/62static void addReportOptions(OptionsCont& oc);6364/// @brief checks shared options and sets StdDefs65static bool checkOptions(OptionsCont& oc);6667/** @brief Closes all of an applications subsystems68*69* Closes (in this order)70* @arg The xml subsystem71* @arg The options subsystem72* @arg The message subsystem73* @see XMLSubSys::close()74* @see OptionsCont::clear()75* @see MsgHandler::cleanupOnEnd()76*/77static void close();78};798081