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