summaryrefslogtreecommitdiff
path: root/py/modules/IcePy/ObjectAdapter.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2008-04-24 01:49:49 -0700
committerMark Spruiell <mes@zeroc.com>2008-04-24 01:49:49 -0700
commite5457947f7b9a0498ffe94ca976614fb87544787 (patch)
tree9a29d7eec9e8a8a8edfcb1fa64dba217b3719ce9 /py/modules/IcePy/ObjectAdapter.cpp
parentFixed bug 3039 (diff)
downloadice-e5457947f7b9a0498ffe94ca976614fb87544787.tar.bz2
ice-e5457947f7b9a0498ffe94ca976614fb87544787.tar.xz
ice-e5457947f7b9a0498ffe94ca976614fb87544787.zip
bug 711 - accept Unicode objects in Python
Diffstat (limited to 'py/modules/IcePy/ObjectAdapter.cpp')
-rw-r--r--py/modules/IcePy/ObjectAdapter.cpp60
1 files changed, 48 insertions, 12 deletions
diff --git a/py/modules/IcePy/ObjectAdapter.cpp b/py/modules/IcePy/ObjectAdapter.cpp
index da0c780b1e3..22b4258b81e 100644
--- a/py/modules/IcePy/ObjectAdapter.cpp
+++ b/py/modules/IcePy/ObjectAdapter.cpp
@@ -672,8 +672,8 @@ adapterAddFacet(ObjectAdapterObject* self, PyObject* args)
PyObject* identityType = lookupType("Ice.Identity");
PyObject* servant;
PyObject* id;
- char* facet;
- if(!PyArg_ParseTuple(args, STRCAST("O!O!s"), objectType, &servant, identityType, &id, &facet))
+ PyObject* facetObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O!O!O"), objectType, &servant, identityType, &id, &facetObj))
{
return 0;
}
@@ -690,6 +690,12 @@ adapterAddFacet(ObjectAdapterObject* self, PyObject* args)
return 0;
}
+ string facet;
+ if(!getStringArg(facetObj, "facet", facet))
+ {
+ return 0;
+ }
+
assert(self->adapter);
Ice::ObjectPrx proxy;
try
@@ -747,8 +753,8 @@ adapterAddFacetWithUUID(ObjectAdapterObject* self, PyObject* args)
{
PyObject* objectType = lookupType("Ice.Object");
PyObject* servant;
- char* facet;
- if(!PyArg_ParseTuple(args, STRCAST("O!s"), objectType, &servant, &facet))
+ PyObject* facetObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O!O"), objectType, &servant, &facetObj))
{
return 0;
}
@@ -759,6 +765,12 @@ adapterAddFacetWithUUID(ObjectAdapterObject* self, PyObject* args)
return 0;
}
+ string facet;
+ if(!getStringArg(facetObj, "facet", facet))
+ {
+ return 0;
+ }
+
assert(self->adapter);
Ice::ObjectPrx proxy;
try
@@ -824,8 +836,8 @@ adapterRemoveFacet(ObjectAdapterObject* self, PyObject* args)
{
PyObject* identityType = lookupType("Ice.Identity");
PyObject* id;
- char* facet;
- if(!PyArg_ParseTuple(args, STRCAST("O!s"), identityType, &id, &facet))
+ PyObject* facetObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O!O"), identityType, &id, &facetObj))
{
return 0;
}
@@ -836,6 +848,12 @@ adapterRemoveFacet(ObjectAdapterObject* self, PyObject* args)
return 0;
}
+ string facet;
+ if(!getStringArg(facetObj, "facet", facet))
+ {
+ return 0;
+ }
+
assert(self->adapter);
Ice::ObjectPtr obj;
try
@@ -960,8 +978,8 @@ adapterFindFacet(ObjectAdapterObject* self, PyObject* args)
{
PyObject* identityType = lookupType("Ice.Identity");
PyObject* id;
- char* facet;
- if(!PyArg_ParseTuple(args, STRCAST("O!s"), identityType, &id, &facet))
+ PyObject* facetObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O!O"), identityType, &id, &facetObj))
{
return 0;
}
@@ -972,6 +990,12 @@ adapterFindFacet(ObjectAdapterObject* self, PyObject* args)
return 0;
}
+ string facet;
+ if(!getStringArg(facetObj, "facet", facet))
+ {
+ return 0;
+ }
+
assert(self->adapter);
Ice::ObjectPtr obj;
try
@@ -1092,14 +1116,20 @@ adapterAddServantLocator(ObjectAdapterObject* self, PyObject* args)
{
PyObject* locatorType = lookupType("Ice.ServantLocator");
PyObject* locator;
- char* category;
- if(!PyArg_ParseTuple(args, STRCAST("O!s"), locatorType, &locator, &category))
+ PyObject* categoryObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O!O"), locatorType, &locator, &categoryObj))
{
return 0;
}
ServantLocatorWrapperPtr wrapper = new ServantLocatorWrapper(locator);
+ string category;
+ if(!getStringArg(categoryObj, "category", category))
+ {
+ return 0;
+ }
+
assert(self->adapter);
try
{
@@ -1121,8 +1151,14 @@ extern "C"
static PyObject*
adapterFindServantLocator(ObjectAdapterObject* self, PyObject* args)
{
- char* category;
- if(!PyArg_ParseTuple(args, STRCAST("s"), &category))
+ PyObject* categoryObj;
+ if(!PyArg_ParseTuple(args, STRCAST("O"), &categoryObj))
+ {
+ return 0;
+ }
+
+ string category;
+ if(!getStringArg(categoryObj, "category", category))
{
return 0;
}