HAL
hal::PythonThread Class Reference

#include <python_thread.h>

Inheritance diagram for hal::PythonThread:
Inheritance graph
Collaboration diagram for hal::PythonThread:
Collaboration graph

Public Types

enum  InputType {
  ConsoleInput , StringInput , NumberInput , ModuleInput ,
  GateInput , FilenameInput , WaitForMenuSelection
}
 
- Public Types inherited from QThread
enum  Priority
 

Signals

void stdOutput (QString txt)
 
void stdError (QString txt)
 
void requireInput (int type, QString prompt, QVariant defaultValue)
 

Public Member Functions

 PythonThread (const QString &script, bool singleStatement, QObject *parent=nullptr)
 
 ~PythonThread ()
 
void run () override
 
void interrupt ()
 
QString errorMessage () const
 
QString result () const
 
void handleStdout (const QString &output) override
 
void handleError (const QString &output) override
 
std::string handleConsoleInput (const QString &prompt)
 
std::string handleStringInput (const QString &prompt, const QString &defval)
 
int handleNumberInput (const QString &prompt, int defval)
 
ModulehandleModuleInput (const QString &prompt)
 
GatehandleGateInput (const QString &prompt)
 
std::string handleFilenameInput (const QString &prompt, const QString &filetype)
 
void clear () override
 
void setInput (const QVariant &inp)
 
bool getInput (InputType type, QString prompt, QVariant defaultValue)
 
void unlock ()
 
const QStringstdoutBuffer () const
 
QString flushStdout ()
 
- Public Member Functions inherited from QThread
 QThread (QObject *parent)
 
virtual ~QThread ()
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority () const const
 
bool isFinished () const const
 
bool isRunning () const const
 
void requestInterruption ()
 
bool isInterruptionRequested () const const
 
void setStackSize (uint stackSize)
 
uint stackSize () const const
 
void exit (int returnCode)
 
QAbstractEventDispatchereventDispatcher () const const
 
void setEventDispatcher (QAbstractEventDispatcher *eventDispatcher)
 
virtual bool event (QEvent *event) override
 
int loopLevel () const const
 
void start (QThread::Priority priority)
 
void terminate ()
 
void quit ()
 
bool wait (QDeadlineTimer deadline)
 
bool wait (unsigned long time)
 
void started ()
 
void finished ()
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual ~QObject ()
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Additional Inherited Members

- Static Public Member Functions inherited from QThread
Qt::HANDLE currentThreadId ()
 
QThreadcurrentThread ()
 
int idealThreadCount ()
 
void yieldCurrentThread ()
 
QThreadcreate (Function &&f, Args &&... args)
 
QThreadcreate (Function &&f)
 
void sleep (unsigned long secs)
 
void msleep (unsigned long msecs)
 
void usleep (unsigned long usecs)
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Public Attributes inherited from QThread
 IdlePriority
 
 LowestPriority
 
 LowPriority
 
 NormalPriority
 
 HighPriority
 
 HighestPriority
 
 TimeCriticalPriority
 
 InheritPriority
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QThread
int exec ()
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Static Protected Member Functions inherited from QThread
void setTerminationEnabled (bool enabled)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Definition at line 58 of file python_thread.h.

Member Enumeration Documentation

◆ InputType

Enumerator
ConsoleInput 
StringInput 
NumberInput 
ModuleInput 
GateInput 
FilenameInput 
WaitForMenuSelection 

Definition at line 61 of file python_thread.h.

Constructor & Destructor Documentation

◆ PythonThread()

hal::PythonThread::PythonThread ( const QString script,
bool  singleStatement,
QObject parent = nullptr 
)

Definition at line 24 of file python_thread.cpp.

◆ ~PythonThread()

hal::PythonThread::~PythonThread ( )

Definition at line 31 of file python_thread.cpp.

Member Function Documentation

◆ clear()

void hal::PythonThread::clear ( )
overridevirtual

Handle that a 'clear'-command occurs (i.e. clear the console).

Implements hal::PythonContextSubscriber.

Definition at line 112 of file python_thread.cpp.

◆ errorMessage()

QString hal::PythonThread::errorMessage ( ) const
inline

Definition at line 84 of file python_thread.h.

◆ flushStdout()

QString hal::PythonThread::flushStdout ( )

Definition at line 99 of file python_thread.cpp.

References QString::clear(), and QElapsedTimer::restart().

◆ getInput()

◆ handleConsoleInput()

std::string hal::PythonThread::handleConsoleInput ( const QString prompt)

◆ handleError()

void hal::PythonThread::handleError ( const QString output)
overridevirtual

Handle error messages.

Parameters
output- The message.

Implements hal::PythonContextSubscriber.

Definition at line 107 of file python_thread.cpp.

References hal::output, QObject::Q_EMIT(), and stdError().

◆ handleFilenameInput()

std::string hal::PythonThread::handleFilenameInput ( const QString prompt,
const QString filetype 
)

◆ handleGateInput()

Gate * hal::PythonThread::handleGateInput ( const QString prompt)

Definition at line 187 of file python_thread.cpp.

References GateInput, getInput(), and QVariant::value().

◆ handleModuleInput()

Module * hal::PythonThread::handleModuleInput ( const QString prompt)

Definition at line 181 of file python_thread.cpp.

References getInput(), ModuleInput, and QVariant::value().

◆ handleNumberInput()

int hal::PythonThread::handleNumberInput ( const QString prompt,
int  defval 
)

Definition at line 175 of file python_thread.cpp.

References getInput(), NumberInput, and QVariant::toInt().

◆ handleStdout()

void hal::PythonThread::handleStdout ( const QString output)
overridevirtual

Handle standard output messages.

Parameters
output- The message.

Implements hal::PythonContextSubscriber.

Definition at line 76 of file python_thread.cpp.

References QString::clear(), QElapsedTimer::elapsed(), QString::isEmpty(), hal::output, QObject::Q_EMIT(), QElapsedTimer::restart(), and stdOutput().

◆ handleStringInput()

std::string hal::PythonThread::handleStringInput ( const QString prompt,
const QString defval 
)

◆ interrupt()

void hal::PythonThread::interrupt ( )

Definition at line 115 of file python_thread.cpp.

References QMutex::tryLock(), and QMutex::unlock().

◆ requireInput

void hal::PythonThread::requireInput ( int  type,
QString  prompt,
QVariant  defaultValue 
)
signal

Referenced by getInput().

◆ result()

QString hal::PythonThread::result ( ) const
inline

Definition at line 85 of file python_thread.h.

◆ run()

void hal::PythonThread::run ( )
overridevirtual

Reimplemented from QThread.

Definition at line 36 of file python_thread.cpp.

References QString::fromStdString(), QElapsedTimer::start(), control::str, and QString::toStdString().

◆ setInput()

void hal::PythonThread::setInput ( const QVariant inp)

Definition at line 199 of file python_thread.cpp.

References QMutex::unlock().

◆ stdError

void hal::PythonThread::stdError ( QString  txt)
signal

Referenced by handleError().

◆ stdoutBuffer()

const QString& hal::PythonThread::stdoutBuffer ( ) const
inline

Definition at line 98 of file python_thread.h.

◆ stdOutput

void hal::PythonThread::stdOutput ( QString  txt)
signal

Referenced by handleStdout().

◆ unlock()

void hal::PythonThread::unlock ( )

Definition at line 205 of file python_thread.cpp.

References QMutex::tryLock(), and QMutex::unlock().


The documentation for this class was generated from the following files: