File indexing completed on 2024-04-21 03:44:57

0001 /*
0002     SPDX-FileCopyrightText: 2003 Jason Harris <kstars@30doradus.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QString>
0010 
0011 /**
0012  *
0013  * Jason Harris
0014  **/
0015 class ScriptFunction
0016 {
0017   public:
0018     ScriptFunction(const QString &name, const QString &desc, bool clockfcn = false, const QString &at1 = QString(),
0019                    const QString &an1 = QString(), const QString &at2 = QString(), const QString &an2 = QString(),
0020                    const QString &at3 = QString(), const QString &an3 = QString(), const QString &at4 = QString(),
0021                    const QString &an4 = QString(), const QString &at5 = QString(), const QString &an5 = QString(),
0022                    const QString &at6 = QString(), const QString &an6 = QString());
0023     explicit ScriptFunction(ScriptFunction *sf);
0024     ~ScriptFunction() = default;
0025 
0026     QString name() const { return Name; }
0027     QString prototype() const;
0028     QString description() const { return Description; }
0029     QString argType(unsigned int n) const { return ArgType[n]; }
0030     QString argName(unsigned int n) const { return ArgName[n]; }
0031     QString argVal(unsigned int n) const { return ArgVal[n]; }
0032     QString argDBusType(unsigned int n) const { return ArgDBusType[n]; }
0033 
0034     void setValid(bool b) { Valid = b; }
0035     bool valid() const { return Valid; }
0036 
0037     void setClockFunction(bool b = true) { ClockFunction = b; }
0038     bool isClockFunction() const { return ClockFunction; }
0039 
0040     void setArg(unsigned int n, QString newVal) { ArgVal[n] = newVal; }
0041     bool checkArgs();
0042     int numArgs() const { return NumArgs; }
0043 
0044     QString scriptLine() const;
0045 
0046     void setINDIProperty(QString prop) { INDIProp = prop; }
0047     QString INDIProperty() const { return INDIProp; }
0048     QString DBusType(const QString &type);
0049 
0050   private:
0051     QString Name, Description;
0052     QString ArgType[6];
0053     QString ArgDBusType[6];
0054     QString ArgName[6];
0055     QString ArgVal[6];
0056     QString INDIProp;
0057     bool Valid, ClockFunction;
0058     int NumArgs;
0059 };