diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-06-01 18:24:25 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-06-01 18:24:25 +0000 |
commit | 5c8391a0f701de4dc32aa84e93236e850e357a02 (patch) | |
tree | ef31dc228315ac7e0b17106213c2c39556b8376a /py/modules/IcePy/ThreadNotification.cpp | |
parent | Pass init data rather than logger (diff) | |
download | ice-5c8391a0f701de4dc32aa84e93236e850e357a02.tar.bz2 ice-5c8391a0f701de4dc32aa84e93236e850e357a02.tar.xz ice-5c8391a0f701de4dc32aa84e93236e850e357a02.zip |
Added thead notification callbacks
Diffstat (limited to 'py/modules/IcePy/ThreadNotification.cpp')
-rw-r--r-- | py/modules/IcePy/ThreadNotification.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/py/modules/IcePy/ThreadNotification.cpp b/py/modules/IcePy/ThreadNotification.cpp new file mode 100644 index 00000000000..c6a62fa103c --- /dev/null +++ b/py/modules/IcePy/ThreadNotification.cpp @@ -0,0 +1,52 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifdef _WIN32 +# include <IceUtil/Config.h> +#endif +#include <ThreadNotification.h> + +using namespace std; +using namespace IcePy; + +IcePy::ThreadNotificationWrapper::ThreadNotificationWrapper(PyObject* threadNotification) : + _threadNotification(threadNotification) +{ + Py_INCREF(threadNotification); +} + +void +IcePy::ThreadNotificationWrapper::start() +{ + AdoptThread adoptThread; // Ensure the current thread is able to call into Python. + + PyObjectHandle tmp = PyObject_CallMethod(_threadNotification.get(), STRCAST("start"), NULL); + if(tmp.get() == NULL) + { + throwPythonException(); + } +} + +void +IcePy::ThreadNotificationWrapper::stop() +{ + AdoptThread adoptThread; // Ensure the current thread is able to call into Python. + + PyObjectHandle tmp = PyObject_CallMethod(_threadNotification.get(), STRCAST("stop"), NULL); + if(tmp.get() == NULL) + { + throwPythonException(); + } +} + +PyObject* +IcePy::ThreadNotificationWrapper::getObject() +{ + return _threadNotification.get(); +} |