LCOV - code coverage report
Current view: top level - src/microsim/devices - MSTransportableDevice.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 100.0 % 5 5
Test Date: 2024-11-22 15:46:21 Functions: 100.0 % 1 1

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2007-2024 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    MSTransportableDevice.h
      15              : /// @author  Michael Behrisch
      16              : /// @author  Daniel Krajzewicz
      17              : /// @author  Jakob Erdmann
      18              : /// @date    Tue, 04 Dec 2007
      19              : ///
      20              : // Abstract in-person device
      21              : /****************************************************************************/
      22              : #pragma once
      23              : #include <config.h>
      24              : 
      25              : #include <string>
      26              : #include <vector>
      27              : #include <map>
      28              : #include <set>
      29              : #include <random>
      30              : #include "MSDevice.h"
      31              : 
      32              : 
      33              : // ===========================================================================
      34              : // class declarations
      35              : // ===========================================================================
      36              : class MSTransportable;
      37              : 
      38              : 
      39              : // ===========================================================================
      40              : // class definitions
      41              : // ===========================================================================
      42              : /**
      43              :  * @class MSTransportableDevice
      44              :  * @brief Abstract in-person device
      45              :  *
      46              :  * The MSTransportableDevice-interface brings the following interfaces to a vehicle that
      47              :  *  may be overwritten by real devices:
      48              :  * @arg Retrieval of the person that holds the device
      49              :  */
      50              : class MSTransportableDevice : public MSDevice, public MSMoveReminder {
      51              : public:
      52              :     /** @brief Constructor
      53              :      *
      54              :      * @param[in] holder The person that holds this device
      55              :      * @param[in] id The ID of the device
      56              :      */
      57         2260 :     MSTransportableDevice(MSTransportable& holder, const std::string& id) :
      58         2260 :         MSDevice(id), MSMoveReminder(id), myHolder(holder) {
      59         2260 :     }
      60              : 
      61              : 
      62              :     /// @brief Destructor
      63         1993 :     virtual ~MSTransportableDevice() { }
      64              : 
      65              : 
      66              :     /** @brief Returns the person that holds this device
      67              :      *
      68              :      * @return The person that holds this device
      69              :      */
      70              :     MSTransportable& getHolder() const {
      71           40 :         return myHolder;
      72              :     }
      73              : 
      74              : protected:
      75              :     /// @brief The person that stores the device
      76              :     MSTransportable& myHolder;
      77              : 
      78              : private:
      79              :     /// @brief Invalidated copy constructor.
      80              :     MSTransportableDevice(const MSTransportableDevice&);
      81              : 
      82              :     /// @brief Invalidated assignment operator.
      83              :     MSTransportableDevice& operator=(const MSTransportableDevice&);
      84              : 
      85              : };
        

Generated by: LCOV version 2.0-1