diff --git a/src/blackmisc/simulation/matchingscriptmisc.cpp b/src/blackmisc/simulation/matchingscriptmisc.cpp new file mode 100644 index 000000000..a2d0c782d --- /dev/null +++ b/src/blackmisc/simulation/matchingscriptmisc.cpp @@ -0,0 +1,30 @@ +/* Copyright (C) 2019 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated, + * or distributed except according to the terms contained in the LICENSE file. + */ + +#include "matchingscriptmisc.h" + +namespace BlackMisc +{ + namespace Simulation + { + //! Enum as string + const QString &msToString(MatchingScript ms) + { + static const QString r("Reverse lookup"); + static const QString m("Matching stage"); + static const QString d("Unknown"); + switch (ms) + { + case ReverseLookup: return r; + case MatchingStage: return m; + default: break; + } + return d; + } + } // namespace +} // namespace diff --git a/src/blackmisc/simulation/matchingscriptmisc.h b/src/blackmisc/simulation/matchingscriptmisc.h new file mode 100644 index 000000000..8e18bf15c --- /dev/null +++ b/src/blackmisc/simulation/matchingscriptmisc.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2019 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated, + * or distributed except according to the terms contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKMISC_SIMULATION_MATCHINGSCRIPTMISC_H +#define BLACKMISC_SIMULATION_MATCHINGSCRIPTMISC_H + +#include "blackmisc/simulation/aircraftmodel.h" +#include "blackmisc/blackmiscexport.h" + +namespace BlackMisc +{ + namespace Simulation + { + //! Matching script type + enum MatchingScript + { + ReverseLookup, + MatchingStage + }; + + //! Enum as string + BLACKMISC_EXPORT const QString &msToString(MatchingScript ms); + + //! Return values + struct MSReturnValues + { + //! Ctor + MSReturnValues(const BlackMisc::Simulation::CAircraftModel &model) : model(model) {} + + BlackMisc::Simulation::CAircraftModel model; //!< the model + bool modified = false; //!< modified? + bool rerun = false; //!< rerun that matching part? + bool runScript = false; //!< did we run the script + + //! Did run the script with modified result + bool runScriptAndModified() const { return modified && runScript; } + + //! Did run the script and re-run requested + bool runScriptAndRerun() const { return rerun && runScript; } + + //! Did run the script, modified value and re-run requested + bool runScriptModifiedAndRerun() const { return modified && rerun && runScript; } + }; + } // namespace +} // namespace + +#endif // guard