/****************************************************************************/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 MSFrame.h14/// @author Daniel Krajzewicz15/// @author Michael Behrisch16/// @date Sept 200217///18// Sets and checks options for microsim; inits global outputs and settings19/****************************************************************************/20#pragma once21#include <config.h>222324// ===========================================================================25// class declarations26// ===========================================================================27class OptionsCont;28class MSNet;29class OutputDevice;303132// ===========================================================================33// class definitions34// ===========================================================================35/**36* @class MSFrame37* @brief Sets and checks options for microsim; inits global outputs and settings38*39* In addition to setting and checking options, this frame also sets global40* values via "setMSGlobals". They are stored in MSGlobals.41*42* Also, global output streams are initialised within "buildStreams".43*44* @see MSGlobals45*/46class MSFrame {47public:48/** @brief Inserts options used by the simulation into the OptionsCont-singleton49*50* Device-options are inserted by calling the device's "insertOptions"51* -methods.52*/53static void fillOptions();545556/** @brief Builds the streams used possibly by the simulation */57static void buildStreams();585960/** @brief Checks the set options.61*62* The following constraints must be valid:63* @arg the network-file was specified (otherwise no simulation is existing)64* @arg the begin and the end of the simulation must be given65* @arg The default lane change model must be known66* If one is not, false is returned.67*68* @return Whether the settings are valid69* @todo Rechek usage of the lane change model70* @todo probably, more things should be checked...71*/72static bool checkOptions();737475/** @brief Sets the global microsim-options76*77* @param[in] oc The options container to get the values from78* @see MSGlobals79*/80static void setMSGlobals(OptionsCont& oc);8182};838485