qpidctrl  0.7.1
qpidscriptengine.cpp
Go to the documentation of this file.
1 #include "qpidscriptengine.h"
2 #include "qpidcontroller.h"
3 #include "qpidserver.h"
4 #include "qpidlogger.h"
5 
7  QScriptEngine(parent),
8  m_Controller(ctl)
9 {
11 
12  if (ctrl) {
13  globalObject().setProperty("controller", newQObject(ctrl.data(), QScriptEngine::QtOwnership));
14  globalObject().setProperty("server", newQObject(ctrl->server().data(), QScriptEngine::QtOwnership));
15 
16  QPidLoggerPtr log = ctrl->logger();
17 
18  if (log) {
19  globalObject().setProperty("logger", newQObject(log.data(), QScriptEngine::QtOwnership));
20  }
21  }
22 
23  globalObject().setProperty("print", newFunction(printFunc, NULL));
24 }
25 
26 QScriptValue QPidScriptEngine::printFunc(QScriptContext *context, QScriptEngine *engine, void * /*u*/)
27 {
28  QPidScriptEngine *eng = qobject_cast<QPidScriptEngine*>(engine);
29 
30  if (eng) {
31  int nArgs = context->argumentCount();
32  QString msg;
33 
34  for (int i=0; i<nArgs; i++) {
35  if (i != 0) {
36  msg += " ";
37  }
38 
39  msg += context -> argument(i).toString();
40  }
41 
43 
44  if (ctrl) {
45  ctrl->printMessage(msg);
46  }
47  }
48 
49  return QScriptValue(engine, 1);
50 }
51 
53 {
54  m_DefaultDevice = dev;
55 
56  globalObject().setProperty("device", newQObject(m_DefaultDevice.data(), QScriptEngine::QtOwnership));
57 }
QPidScriptEngine(QPidControllerWPtr ctl, QObject *parent=0)
QSharedPointer< QPidDevice > QPidDevicePtr
Definition: qpiddevice-ptr.h:6
QWeakPointer< QPidController > QPidControllerWPtr
static QScriptValue printFunc(QScriptContext *context, QScriptEngine *engine, void *u)
QSharedPointer< QPidLogger > QPidLoggerPtr
Definition: qpidlogger-ptr.h:6
QSharedPointer< QPidController > QPidControllerPtr
void setDefaultDevice(QPidDevicePtr dev)
QPidControllerWPtr m_Controller
QPidDevicePtr m_DefaultDevice