summaryrefslogtreecommitdiffstats
path: root/src/input
diff options
context:
space:
mode:
authorSebastien Braun2010-10-05 15:31:11 +0200
committerSebastien Braun2010-10-05 18:15:51 +0200
commit9b8657b04122838e3149208789a004baaa3ba635 (patch)
tree9c5d9196993bf7eb9d58ce353fb583e8167e3220 /src/input
parentImplement privileged input daemon, first version without handlers. (diff)
downloadpvs-9b8657b04122838e3149208789a004baaa3ba635.tar.gz
pvs-9b8657b04122838e3149208789a004baaa3ba635.tar.xz
pvs-9b8657b04122838e3149208789a004baaa3ba635.zip
Implement example privileged SayHelloHandler.
Diffstat (limited to 'src/input')
-rw-r--r--src/input/CMakeLists.txt1
-rw-r--r--src/input/inputHandlerChain.h2
-rw-r--r--src/input/sayHelloHandler.cpp25
-rw-r--r--src/input/sayHelloHandler.h34
4 files changed, 62 insertions, 0 deletions
diff --git a/src/input/CMakeLists.txt b/src/input/CMakeLists.txt
index 5f009c5..4aaa845 100644
--- a/src/input/CMakeLists.txt
+++ b/src/input/CMakeLists.txt
@@ -10,6 +10,7 @@ if(UNIX)
pvsprivinputd.cpp
pvsPrivInputHandler.cpp
pvsCheckPrivileges.cpp
+ sayHelloHandler.cpp
)
set(pvsprivinputd_MOC_HDRS
diff --git a/src/input/inputHandlerChain.h b/src/input/inputHandlerChain.h
index 61c3d62..57168c2 100644
--- a/src/input/inputHandlerChain.h
+++ b/src/input/inputHandlerChain.h
@@ -23,6 +23,7 @@
#include "x11FakeKeyboardHandler.h"
#include "x11FakeMouseHandler.h"
#include "privilegedHandlerForwarder.h"
+#include "sayHelloHandler.h"
typedef boost::mpl::list<
Handler<X11FakeKeyboardHandler, policy::RequireSystem<policy::UnixLike> >,
@@ -34,6 +35,7 @@ typedef boost::mpl::list<
typedef InputEventHandlerChain<unprivileged_handler_list> unprivileged_handler_chain;
typedef boost::mpl::list<
+ Handler<SayHelloHandler>
>::type privileged_handler_list;
typedef InputEventHandlerChain<privileged_handler_list> privileged_handler_chain;
diff --git a/src/input/sayHelloHandler.cpp b/src/input/sayHelloHandler.cpp
new file mode 100644
index 0000000..fc6f668
--- /dev/null
+++ b/src/input/sayHelloHandler.cpp
@@ -0,0 +1,25 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # --------------------------------------------------------------------------
+ # rebootSystemHandler.h
+ # - Handle "say hello" requests - interface
+ # --------------------------------------------------------------------------
+ */
+
+#include "sayHelloHandler.h"
+#include <iostream>
+
+using namespace std;
+
+void SayHelloHandler::handle(InputEvent const&, InputEventContext const* ctx)
+{
+ cerr << "I'm right here! You sent this message from pid " << ctx->getSenderPid() << " as user " << ctx->getSenderUid() << " with gid " << ctx->getSenderGid() << endl;
+}
diff --git a/src/input/sayHelloHandler.h b/src/input/sayHelloHandler.h
new file mode 100644
index 0000000..b0d4c7e
--- /dev/null
+++ b/src/input/sayHelloHandler.h
@@ -0,0 +1,34 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # --------------------------------------------------------------------------
+ # rebootSystemHandler.h
+ # - Handle "say hello" requests - interface
+ # --------------------------------------------------------------------------
+ */
+
+#ifndef SAYHELLOHANDLER_CPP_
+#define SAYHELLOHANDLER_CPP_
+
+#include <QCoreApplication>
+#include "inputEventHandler.h"
+
+class SayHelloHandler : public DefaultInputEventHandler<InputEvent::ET_SPECIAL, InputEvent::EC_SAY_HELLO>
+{
+public:
+ void handle(InputEvent const&, InputEventContext const*);
+
+ static void describeInto(QList<SpecialInputEventDescription>& list)
+ {
+ list << SpecialInputEventDescription(tr(QT_TRANSLATE_NOOP("InputEventHandler", "Say Hello")), InputEvent::ET_SPECIAL, InputEvent::EC_SAY_HELLO);
+ }
+};
+
+#endif /* SAYHELLOHANDLER_CPP_ */