summaryrefslogtreecommitdiffstats
path: root/src/localdevice
diff options
context:
space:
mode:
Diffstat (limited to 'src/localdevice')
-rw-r--r--src/localdevice/localdevice.pro16
-rw-r--r--src/localdevice/qlocaldevice.cpp57
-rw-r--r--src/localdevice/qlocaldevice.h37
3 files changed, 110 insertions, 0 deletions
diff --git a/src/localdevice/localdevice.pro b/src/localdevice/localdevice.pro
new file mode 100644
index 0000000..e6e5bc9
--- /dev/null
+++ b/src/localdevice/localdevice.pro
@@ -0,0 +1,16 @@
+load(qt_build_config)
+
+TARGET = QtLocalDevice
+VERSION = 1.0
+CONFIG += dll warn_on
+
+QT = core
+
+MODULE = localdevice
+load(qt_module)
+
+HEADERS += \
+ $$PWD/qlocaldevice.h
+
+SOURCES += \
+ $$PWD/qlocaldevice.cpp
diff --git a/src/localdevice/qlocaldevice.cpp b/src/localdevice/qlocaldevice.cpp
new file mode 100644
index 0000000..86893fd
--- /dev/null
+++ b/src/localdevice/qlocaldevice.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use the contact form at
+** http://www.qt.io
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** the contact form at http://www.qt.io
+**
+****************************************************************************/
+#include "qlocaldevice.h"
+#include <unistd.h>
+#include <sys/reboot.h>
+
+
+QLocalDevice::QLocalDevice(QObject *parent)
+ : QObject(parent)
+{
+}
+
+QLocalDevice::~QLocalDevice()
+{
+}
+
+/*!
+ * Reboots the system. Does not return.
+ *
+ * \sa powerOff()
+ */
+void QLocalDevice::reboot()
+{
+ sync();
+ ::reboot(RB_AUTOBOOT);
+ qWarning("reboot returned");
+}
+
+
+/*!
+ * Shuts down the system. Does not return.
+ *
+ * \sa reboot()
+ */
+void QLocalDevice::powerOff()
+{
+ sync();
+ ::reboot(RB_POWER_OFF);
+ qWarning("powerOff returned");
+}
+
diff --git a/src/localdevice/qlocaldevice.h b/src/localdevice/qlocaldevice.h
new file mode 100644
index 0000000..cf289c8
--- /dev/null
+++ b/src/localdevice/qlocaldevice.h
@@ -0,0 +1,37 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use the contact form at
+** http://www.qt.io
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** the contact form at http://www.qt.io
+**
+****************************************************************************/
+#ifndef QLOCALDEVICE_H
+#define QLOCALDEVICE_H
+
+#include <qobject.h>
+
+class Q_DECL_EXPORT QLocalDevice : public QObject
+{
+ Q_OBJECT
+
+public:
+ QLocalDevice(QObject *parent = 0);
+ ~QLocalDevice();
+
+public Q_SLOTS:
+ void reboot();
+ void powerOff();
+};
+
+#endif // QLOCALDEVICE_H