1 /*
2     SPDX-FileCopyrightText: 2003 Jason Harris <kstars@30doradus.org>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QString>
10 
11 /**
12  *
13  * Jason Harris
14  **/
15 class ScriptFunction
16 {
17   public:
18     ScriptFunction(const QString &name, const QString &desc, bool clockfcn = false, const QString &at1 = QString(),
19                    const QString &an1 = QString(), const QString &at2 = QString(), const QString &an2 = QString(),
20                    const QString &at3 = QString(), const QString &an3 = QString(), const QString &at4 = QString(),
21                    const QString &an4 = QString(), const QString &at5 = QString(), const QString &an5 = QString(),
22                    const QString &at6 = QString(), const QString &an6 = QString());
23     explicit ScriptFunction(ScriptFunction *sf);
24     ~ScriptFunction() = default;
25 
name()26     QString name() const { return Name; }
27     QString prototype() const;
description()28     QString description() const { return Description; }
argType(unsigned int n)29     QString argType(unsigned int n) const { return ArgType[n]; }
argName(unsigned int n)30     QString argName(unsigned int n) const { return ArgName[n]; }
argVal(unsigned int n)31     QString argVal(unsigned int n) const { return ArgVal[n]; }
argDBusType(unsigned int n)32     QString argDBusType(unsigned int n) const { return ArgDBusType[n]; }
33 
setValid(bool b)34     void setValid(bool b) { Valid = b; }
valid()35     bool valid() const { return Valid; }
36 
37     void setClockFunction(bool b = true) { ClockFunction = b; }
isClockFunction()38     bool isClockFunction() const { return ClockFunction; }
39 
setArg(unsigned int n,QString newVal)40     void setArg(unsigned int n, QString newVal) { ArgVal[n] = newVal; }
41     bool checkArgs();
numArgs()42     int numArgs() const { return NumArgs; }
43 
44     QString scriptLine() const;
45 
setINDIProperty(QString prop)46     void setINDIProperty(QString prop) { INDIProp = prop; }
INDIProperty()47     QString INDIProperty() const { return INDIProp; }
48     QString DBusType(const QString &type);
49 
50   private:
51     QString Name, Description;
52     QString ArgType[6];
53     QString ArgDBusType[6];
54     QString ArgName[6];
55     QString ArgVal[6];
56     QString INDIProp;
57     bool Valid, ClockFunction;
58     int NumArgs;
59 };
60