summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSebastien Braun2010-10-10 14:31:49 +0200
committerSebastien Braun2010-10-11 00:56:08 +0200
commitc8978b46070959273d8ee8d760b2594c18a237a9 (patch)
treef62700250b88c01ee10cced36de18c98c327fdf3 /src
parentFix bug in logical OR when chaining Require<...> Policy. (diff)
downloadpvs-c8978b46070959273d8ee8d760b2594c18a237a9.tar.gz
pvs-c8978b46070959273d8ee8d760b2594c18a237a9.tar.xz
pvs-c8978b46070959273d8ee8d760b2594c18a237a9.zip
Add an InputEventHandler that is not compatible anywhere.
Diffstat (limited to 'src')
-rw-r--r--src/input/incompatibleHandler.h37
-rw-r--r--src/input/unprivilegedInputHandlerChain.cpp4
2 files changed, 40 insertions, 1 deletions
diff --git a/src/input/incompatibleHandler.h b/src/input/incompatibleHandler.h
new file mode 100644
index 0000000..5a92806
--- /dev/null
+++ b/src/input/incompatibleHandler.h
@@ -0,0 +1,37 @@
+/*
+ # 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/
+ # --------------------------------------------------------------------------
+ # incompatibleHandler.h:
+ # - A handler that is not compatible with any system.
+ # The presence of this file does no harm whatsoever,
+ # since there will never be any references generated to the class
+ # it defines, and allows us to test the claim that
+ # the Require<...> policy does a better job than the preprocessor.
+ # --------------------------------------------------------------------------
+ */
+
+#ifndef INCOMPATIBLEHANDLERTYPE_H_
+#define INCOMPATIBLEHANDLERTYPE_H_
+
+#include "inputEventHandler.h"
+
+namespace incompatible {
+ struct Incompatible;
+}
+
+class IncompatibleHandler : public InputEventHandler<
+ input_policy::Require<incompatible::Incompatible> >
+{
+ void doHandle(InputEvent const&, InputEventContext const*);
+};
+
+
+#endif /* INCOMPATIBLEHANDLERTYPE_H_ */
diff --git a/src/input/unprivilegedInputHandlerChain.cpp b/src/input/unprivilegedInputHandlerChain.cpp
index fbbc770..9353321 100644
--- a/src/input/unprivilegedInputHandlerChain.cpp
+++ b/src/input/unprivilegedInputHandlerChain.cpp
@@ -18,6 +18,7 @@
#include "x11FakeKeyboardHandler.h"
#include "x11FakeMouseHandler.h"
#include "privilegedHandlerForwarder.h"
+#include "incompatibleHandler.h"
#include "inputHandlerChains.h"
InputEventHandlerChain makeUnprivilegedInputEventHandlerChain()
@@ -25,6 +26,7 @@ InputEventHandlerChain makeUnprivilegedInputEventHandlerChain()
return InputEventHandlerChain().add<X11FakeKeyboardHandler>()
.add<X11FakeMouseButtonHandler>()
.add<X11FakeKeyboardHandler>()
- .add<PrivilegedHandlerForwarder>();
+ .add<PrivilegedHandlerForwarder>()
+ .add<IncompatibleHandler>(); // See comments in incompatibleHandler.h
}