/****************************************************************************/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 MEVehicleControl.h14/// @author Daniel Krajzewicz15/// @date Wed, 10. Dec 200316///17// The class responsible for building and deletion of vehicles (meso-version)18/****************************************************************************/19#pragma once20#include <config.h>2122#include <vector>23#include <microsim/MSVehicleControl.h>242526// ===========================================================================27// class definitions28// ===========================================================================29/**30* @class MEVehicleControl31* @brief The class responsible for building and deletion of vehicles (gui-version)32*33* Builds GUIVehicle instances instead of MSVehicle.34*35* @see MSVehicleControl36* @todo This is partially unsecure due to concurrent access...37* @todo Recheck vehicle deletion38*/39class MEVehicleControl : public MSVehicleControl {40public:41/// @brief Constructor42MEVehicleControl();434445/// @brief Destructor46~MEVehicleControl();474849/// @name Vehicle creation50/// @{5152/** @brief Builds a vehicle, increases the number of built vehicles53*54* Instead of a MSVehicle, a GUIVehicle is built55*56* @param[in] defs The parameter defining the vehicle57* @param[in] route The route of this vehicle58* @param[in] type The type of this vehicle59* @param[in] ignoreStopErrors whether invalid stops trigger a warning only60* @param[in] source whether we are just reading the route file or creating via trigger, traci, ...61* @return The built vehicle (MEVehicle instance)62* @see MSVehicleControl::buildVehicle63*/64virtual SUMOVehicle* buildVehicle(SUMOVehicleParameter* defs,65ConstMSRoutePtr route, MSVehicleType* type,66const bool ignoreStopErrors, const VehicleDefinitionSource source = VehicleDefinitionSource::ROUTEFILE,67bool addRouteStops = true) override;68/// @}697071private:72/// @brief invalidated copy constructor73MEVehicleControl(const MEVehicleControl& s);7475/// @brief invalidated assignment operator76MEVehicleControl& operator=(const MEVehicleControl& s);777879};808182