[104717] trunk/dports/python/py-zeroc-ice34
blair at macports.org
blair at macports.org
Mon Apr 1 08:49:34 PDT 2013
Revision: 104717
https://trac.macports.org/changeset/104717
Author: blair at macports.org
Date: 2013-04-01 08:49:34 -0700 (Mon, 01 Apr 2013)
Log Message:
-----------
py-zeroc-ice34: support custom Ice::Dispatchers in Python (sort of).
Modified Paths:
--------------
trunk/dports/python/py-zeroc-ice34/Portfile
Added Paths:
-----------
trunk/dports/python/py-zeroc-ice34/files/patch-py.modules.IcePy.Communicator.cpp.diff
Modified: trunk/dports/python/py-zeroc-ice34/Portfile
===================================================================
--- trunk/dports/python/py-zeroc-ice34/Portfile 2013-04-01 15:20:14 UTC (rev 104716)
+++ trunk/dports/python/py-zeroc-ice34/Portfile 2013-04-01 15:49:34 UTC (rev 104717)
@@ -5,7 +5,7 @@
name py-zeroc-ice34
version 3.4.2
-revision 2
+revision 3
set branch [join [lrange [split ${version} .] 0 1] .]
categories-append devel
maintainers blair
@@ -39,6 +39,7 @@
sha1 8c84d6e3b227f583d05e08251e07047e6c3a6b42 \
rmd160 7ce680a4eb5fa9d0bb6f8b8910e267dfc2373d75
patchfiles patch-py.config.Make.rules.Darwin.diff \
+ patch-py.modules.IcePy.Communicator.cpp.diff \
patch-add-thrift-support.diff
platforms darwin
Added: trunk/dports/python/py-zeroc-ice34/files/patch-py.modules.IcePy.Communicator.cpp.diff
===================================================================
--- trunk/dports/python/py-zeroc-ice34/files/patch-py.modules.IcePy.Communicator.cpp.diff (rev 0)
+++ trunk/dports/python/py-zeroc-ice34/files/patch-py.modules.IcePy.Communicator.cpp.diff 2013-04-01 15:49:34 UTC (rev 104717)
@@ -0,0 +1,43 @@
+From 7c25ae9ae71346357208fb714250ac75aae9fb61 Mon Sep 17 00:00:00 2001
+From: J Robert Ray jrray{_at_}imageworks{_dot_}com
+Date: Mon, 20 Aug 2012 14:54:22 -0700
+Subject: [PATCH] Support custom Ice::Dispatchers in Python (sort of).
+
+This is a very thin shim to expose the InitializationData::dispatcher
+member, but not a way to implement an Ice::Dispatcher in Python.
+
+Extend the wrapped Ice.InitializationData to check for a 'dispatcher'
+attribute. In Python, the user is to pass in a PyCObject-wrapped
+Ice::Dispatcher*.
+
+The custom Ice::Dispatcher must still be implemented in C++, and also
+exposed to Python in some way.
+
+diff -ru ../Ice-3.4.2.orig/py/modules/IcePy/Communicator.cpp ./py/modules/IcePy/Communicator.cpp
+--- ../Ice-3.4.2.orig/py/modules/IcePy/Communicator.cpp 2011-06-15 12:44:00.000000000 -0700
++++ ./py/modules/IcePy/Communicator.cpp 2013-04-01 08:39:31.000000000 -0700
+@@ -142,6 +142,7 @@
+ PyObjectHandle properties = PyObject_GetAttrString(initData, STRCAST("properties"));
+ PyObjectHandle logger = PyObject_GetAttrString(initData, STRCAST("logger"));
+ PyObjectHandle threadHook = PyObject_GetAttrString(initData, STRCAST("threadHook"));
++ PyObjectHandle dispatcher = PyObject_GetAttrString(initData, STRCAST("dispatcher"));
+ PyErr_Clear(); // PyObject_GetAttrString sets an error on failure.
+
+ if(properties.get() && properties.get() != Py_None)
+@@ -163,6 +164,16 @@
+ {
+ data.threadHook = new ThreadNotificationWrapper(threadHook.get());
+ }
++
++ if(dispatcher.get() && dispatcher.get() != Py_None)
++ {
++ if (!PyCObject_Check(dispatcher.get())) {
++ PyErr_Format(PyExc_ValueError, STRCAST("Ice.InitializationData dispatcher must be a PyCObject-wrapped Ice::Dispatcher*"));
++ return -1;
++ }
++
++ data.dispatcher = reinterpret_cast<Ice::Dispatcher*>(PyCObject_AsVoidPtr(dispatcher.get()));
++ }
+ }
+
+ try
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130401/46cc7806/attachment-0001.html>
More information about the macports-changes
mailing list