summaryrefslogtreecommitdiff
path: root/py/modules/IcePy/Proxy.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
commit630a37d2fe66f24518299e705f958b571803c522 (patch)
tree969723791bdc4d73bb099c19d45554d0ca241ad9 /py/modules/IcePy/Proxy.cpp
parentFix some README.md markdown formatting (diff)
downloadice-630a37d2fe66f24518299e705f958b571803c522.tar.bz2
ice-630a37d2fe66f24518299e705f958b571803c522.tar.xz
ice-630a37d2fe66f24518299e705f958b571803c522.zip
py -> python
rb -> ruby objc -> objective-c cs -> csharp
Diffstat (limited to 'py/modules/IcePy/Proxy.cpp')
-rw-r--r--py/modules/IcePy/Proxy.cpp2689
1 files changed, 0 insertions, 2689 deletions
diff --git a/py/modules/IcePy/Proxy.cpp b/py/modules/IcePy/Proxy.cpp
deleted file mode 100644
index 293c3c16de8..00000000000
--- a/py/modules/IcePy/Proxy.cpp
+++ /dev/null
@@ -1,2689 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 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.
-//
-// **********************************************************************
-
-#include <IceUtil/DisableWarnings.h>
-#ifdef _WIN32
-# include <IceUtil/Config.h>
-#endif
-#include <Proxy.h>
-#include <structmember.h>
-#include <Communicator.h>
-#include <Connection.h>
-#include <Endpoint.h>
-#include <Operation.h>
-#include <Thread.h>
-#include <Util.h>
-#include <Ice/Communicator.h>
-#include <Ice/LocalException.h>
-#include <Ice/Locator.h>
-#include <Ice/Proxy.h>
-#include <Ice/Router.h>
-
-using namespace std;
-using namespace IcePy;
-
-namespace IcePy
-{
-
-struct ProxyObject
-{
- PyObject_HEAD
- Ice::ObjectPrx* proxy;
- Ice::CommunicatorPtr* communicator;
-};
-
-}
-
-//
-// Proxy implementation.
-//
-static ProxyObject*
-allocateProxy(const Ice::ObjectPrx& proxy, const Ice::CommunicatorPtr& communicator, PyObject* type)
-{
- PyTypeObject* typeObj = reinterpret_cast<PyTypeObject*>(type);
- ProxyObject* p = reinterpret_cast<ProxyObject*>(typeObj->tp_alloc(typeObj, 0));
- if(!p)
- {
- return 0;
- }
-
- //
- // Disabling collocation optimization can cause subtle problems with proxy
- // comparison (such as in RouterInfo::get) if a proxy from IcePy is
- // compared with a proxy from Ice/C++.
- //
- //if(proxy)
- //{
- // p->proxy = new Ice::ObjectPrx(proxy->ice_collocationOptimized(false));
- //}
- //
- p->proxy = new Ice::ObjectPrx(proxy);
- p->communicator = new Ice::CommunicatorPtr(communicator);
-
- return p;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static ProxyObject*
-proxyNew(PyTypeObject* /*type*/, PyObject* /*args*/, PyObject* /*kwds*/)
-{
- PyErr_Format(PyExc_RuntimeError, STRCAST("A proxy cannot be created directly"));
- return 0;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static void
-proxyDealloc(ProxyObject* self)
-{
- delete self->proxy;
- delete self->communicator;
- Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyCompare(ProxyObject* p1, PyObject* other, int op)
-{
- bool result = false;
-
- if(PyObject_TypeCheck(other, &ProxyType))
- {
- ProxyObject* p2 = reinterpret_cast<ProxyObject*>(other);
-
- switch(op)
- {
- case Py_EQ:
- result = *p1->proxy == *p2->proxy;
- break;
- case Py_NE:
- result = *p1->proxy != *p2->proxy;
- break;
- case Py_LE:
- result = *p1->proxy <= *p2->proxy;
- break;
- case Py_GE:
- result = *p1->proxy >= *p2->proxy;
- break;
- case Py_LT:
- result = *p1->proxy < *p2->proxy;
- break;
- case Py_GT:
- result = *p1->proxy > *p2->proxy;
- break;
- }
- }
- else if(other == Py_None)
- {
- result = op == Py_NE || op == Py_GE || op == Py_GT;
- }
- else
- {
- if(op == Py_EQ)
- {
- result = false;
- }
- else if(op == Py_NE)
- {
- result = true;
- }
- else
- {
- PyErr_Format(PyExc_TypeError, "can't compare %s to %s", Py_TYPE(p1)->tp_name, Py_TYPE(other)->tp_name);
- return 0;
- }
- }
-
- PyObject* r = result ? getTrue() : getFalse();
- Py_INCREF(r);
- return r;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyRepr(ProxyObject* self)
-{
- string str = (*self->proxy)->ice_toString();
- return createString(str);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static long
-proxyHash(ProxyObject* self)
-{
- return static_cast<long>((*self->proxy)->__hash());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetCommunicator(ProxyObject* self)
-{
- return getCommunicatorWrapper(*self->communicator);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsA(ProxyObject* self, PyObject* args)
-{
- PyObject* type;
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTuple(args, STRCAST("O|O!"), &type, &PyDict_Type, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code: ((params...), ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((O), O)"), type, ctx);
-
- return invokeBuiltin(reinterpret_cast<PyObject*>(self), "ice_isA", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceIsA(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- static char* argNames[] =
- {
- const_cast<char*>("type"),
- const_cast<char*>("_response"),
- const_cast<char*>("_ex"),
- const_cast<char*>("_sent"),
- const_cast<char*>("_ctx"),
- 0
- };
- PyObject* type;
- PyObject* response = Py_None;
- PyObject* ex = Py_None;
- PyObject* sent = Py_None;
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("O|OOOO"), argNames, &type, &response, &ex, &sent, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code:
- //
- // ((params...), response|None, ex|None, sent|None, ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((O), O, O, O, O)"), type, response, ex, sent, ctx);
-
- return beginBuiltin(reinterpret_cast<PyObject*>(self), "ice_isA", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceIsA(ProxyObject* self, PyObject* args)
-{
- return endBuiltin(reinterpret_cast<PyObject*>(self), "ice_isA", args);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIcePing(ProxyObject* self, PyObject* args)
-{
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTuple(args, STRCAST("|O!"), &PyDict_Type, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code: ((params...), ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O)"), ctx);
-
- return invokeBuiltin(reinterpret_cast<PyObject*>(self), "ice_ping", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIcePing(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- static char* argNames[] =
- {
- const_cast<char*>("_response"),
- const_cast<char*>("_ex"),
- const_cast<char*>("_sent"),
- const_cast<char*>("_ctx"),
- 0
- };
- PyObject* response = Py_None;
- PyObject* ex = Py_None;
- PyObject* sent = Py_None;
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("|OOOO"), argNames, &response, &ex, &sent, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code:
- //
- // ((params...), response|None, ex|None, sent|None, ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O, O, O, O)"), response, ex, sent, ctx);
-
- return beginBuiltin(reinterpret_cast<PyObject*>(self), "ice_ping", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIcePing(ProxyObject* self, PyObject* args)
-{
- return endBuiltin(reinterpret_cast<PyObject*>(self), "ice_ping", args);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIds(ProxyObject* self, PyObject* args)
-{
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTuple(args, STRCAST("|O!"), &PyDict_Type, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code: ((params...), ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O)"), ctx);
-
- return invokeBuiltin(reinterpret_cast<PyObject*>(self), "ice_ids", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceIds(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- static char* argNames[] =
- {
- const_cast<char*>("_response"),
- const_cast<char*>("_ex"),
- const_cast<char*>("_sent"),
- const_cast<char*>("_ctx"),
- 0
- };
- PyObject* response = Py_None;
- PyObject* ex = Py_None;
- PyObject* sent = Py_None;
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("|OOOO"), argNames, &response, &ex, &sent, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code:
- //
- // ((params...), response|None, ex|None, sent|None, ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O, O, O, O)"), response, ex, sent, ctx);
-
- return beginBuiltin(reinterpret_cast<PyObject*>(self), "ice_ids", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceIds(ProxyObject* self, PyObject* args)
-{
- return endBuiltin(reinterpret_cast<PyObject*>(self), "ice_ids", args);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceId(ProxyObject* self, PyObject* args)
-{
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTuple(args, STRCAST("|O!"), &PyDict_Type, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code: ((params...), ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O)"), ctx);
-
- return invokeBuiltin(reinterpret_cast<PyObject*>(self), "ice_id", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceId(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- static char* argNames[] =
- {
- const_cast<char*>("_response"),
- const_cast<char*>("_ex"),
- const_cast<char*>("_sent"),
- const_cast<char*>("_ctx"),
- 0
- };
- PyObject* response = Py_None;
- PyObject* ex = Py_None;
- PyObject* sent = Py_None;
- PyObject* ctx = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("|OOOO"), argNames, &response, &ex, &sent, &ctx))
- {
- return 0;
- }
-
- //
- // We need to reformat the arguments to match what is used by the generated code:
- //
- // ((params...), response|None, ex|None, sent|None, ctx|None)
- //
- PyObjectHandle newArgs = Py_BuildValue(STRCAST("((), O, O, O, O)"), response, ex, sent, ctx);
-
- return beginBuiltin(reinterpret_cast<PyObject*>(self), "ice_id", newArgs.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceId(ProxyObject* self, PyObject* args)
-{
- return endBuiltin(reinterpret_cast<PyObject*>(self), "ice_id", args);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetIdentity(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::Identity id;
- try
- {
- id = (*self->proxy)->ice_getIdentity();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createIdentity(id);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIdentity(ProxyObject* self, PyObject* args)
-{
- PyObject* identityType = lookupType("Ice.Identity");
- assert(identityType);
- PyObject* id;
- if(!PyArg_ParseTuple(args, STRCAST("O!"), identityType, &id))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::Identity ident;
- if(!getIdentity(id, ident))
- {
- return 0;
- }
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_identity(ident);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetContext(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::Context ctx;
- try
- {
- ctx = (*self->proxy)->ice_getContext();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- PyObjectHandle result = PyDict_New();
- if(result.get() && contextToDictionary(ctx, result.get()))
- {
- return result.release();
- }
- return 0;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceContext(ProxyObject* self, PyObject* args)
-{
- PyObject* dict;
- if(!PyArg_ParseTuple(args, STRCAST("O!"), &PyDict_Type, &dict))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::Context ctx;
- if(!dictionaryToContext(dict, ctx))
- {
- return 0;
- }
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_context(ctx);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetFacet(ProxyObject* self)
-{
- assert(self->proxy);
-
- string facet;
- try
- {
- facet = (*self->proxy)->ice_getFacet();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createString(facet);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceFacet(ProxyObject* self, PyObject* args)
-{
- PyObject* facetObj;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &facetObj))
- {
- return 0;
- }
-
- string facet;
- if(!getStringArg(facetObj, "facet", facet))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_facet(facet);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetAdapterId(ProxyObject* self)
-{
- assert(self->proxy);
-
- string id;
- try
- {
- id = (*self->proxy)->ice_getAdapterId();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createString(id);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceAdapterId(ProxyObject* self, PyObject* args)
-{
- PyObject* idObj;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &idObj))
- {
- return 0;
- }
-
- string id;
- if(!getStringArg(idObj, "id", id))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_adapterId(id);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetEndpoints(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::EndpointSeq endpoints;
- try
- {
- endpoints = (*self->proxy)->ice_getEndpoints();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- int count = static_cast<int>(endpoints.size());
- PyObjectHandle result = PyTuple_New(count);
- int i = 0;
- for(Ice::EndpointSeq::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p, ++i)
- {
- PyObjectHandle endp = createEndpoint(*p);
- if(!endp.get())
- {
- return 0;
- }
- PyTuple_SET_ITEM(result.get(), i, endp.release()); // PyTuple_SET_ITEM steals a reference.
- }
-
- return result.release();
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceEndpoints(ProxyObject* self, PyObject* args)
-{
- PyObject* endpoints;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &endpoints))
- {
- return 0;
- }
-
- if(!PyTuple_Check(endpoints) && !PyList_Check(endpoints))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("argument must be a tuple or list"));
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::EndpointSeq seq;
- Py_ssize_t sz = PySequence_Fast_GET_SIZE(endpoints);
- for(Py_ssize_t i = 0; i < sz; ++i)
- {
- PyObject* p = PySequence_Fast_GET_ITEM(endpoints, i);
- PyTypeObject* type = &EndpointType; // Necessary to prevent GCC's strict-alias warnings.
- if(!PyObject_IsInstance(p, reinterpret_cast<PyObject*>(type)))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("expected element of type Ice.Endpoint"));
- return 0;
- }
- Ice::EndpointPtr endp = getEndpoint(p);
- if(!endp)
- {
- return 0;
- }
- seq.push_back(endp);
- }
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_endpoints(seq);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetLocatorCacheTimeout(ProxyObject* self)
-{
- assert(self->proxy);
-
- try
- {
- Ice::Int timeout = (*self->proxy)->ice_getLocatorCacheTimeout();
- return PyLong_FromLong(timeout);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetInvocationTimeout(ProxyObject* self)
-{
- assert(self->proxy);
-
- try
- {
- Ice::Int timeout = (*self->proxy)->ice_getInvocationTimeout();
- return PyLong_FromLong(timeout);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetConnectionId(ProxyObject* self)
-{
- assert(self->proxy);
-
- try
- {
- string connectionId = (*self->proxy)->ice_getConnectionId();
- return createString(connectionId);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceLocatorCacheTimeout(ProxyObject* self, PyObject* args)
-{
- int timeout;
- if(!PyArg_ParseTuple(args, STRCAST("i"), &timeout))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_locatorCacheTimeout(timeout);
- }
- catch(const IceUtil::IllegalArgumentException& ex)
- {
- PyErr_Format(PyExc_RuntimeError, "%s", STRCAST(ex.reason().c_str()));
- return 0;
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceInvocationTimeout(ProxyObject* self, PyObject* args)
-{
- int timeout;
- if(!PyArg_ParseTuple(args, STRCAST("i"), &timeout))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_invocationTimeout(timeout);
- }
- catch(const IceUtil::IllegalArgumentException& ex)
- {
- PyErr_Format(PyExc_RuntimeError, "%s", STRCAST(ex.reason().c_str()));
- return 0;
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsConnectionCached(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isConnectionCached() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceConnectionCached(ProxyObject* self, PyObject* args)
-{
- PyObject* flag;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &flag))
- {
- return 0;
- }
-
- int n = PyObject_IsTrue(flag);
- if(n < 0)
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_connectionCached(n == 1);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetEndpointSelection(ProxyObject* self)
-{
- PyObject* cls = lookupType("Ice.EndpointSelectionType");
- assert(cls);
-
- PyObjectHandle rnd = PyObject_GetAttrString(cls, STRCAST("Random"));
- PyObjectHandle ord = PyObject_GetAttrString(cls, STRCAST("Ordered"));
- assert(rnd.get());
- assert(ord.get());
-
- assert(self->proxy);
-
- PyObject* type;
- try
- {
- Ice::EndpointSelectionType val = (*self->proxy)->ice_getEndpointSelection();
- if(val == Ice::Random)
- {
- type = rnd.get();
- }
- else
- {
- type = ord.get();
- }
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(type);
- return type;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceEndpointSelection(ProxyObject* self, PyObject* args)
-{
- PyObject* cls = lookupType("Ice.EndpointSelectionType");
- assert(cls);
- PyObject* type;
- if(!PyArg_ParseTuple(args, STRCAST("O!"), cls, &type))
- {
- return 0;
- }
-
- Ice::EndpointSelectionType val;
- PyObjectHandle rnd = PyObject_GetAttrString(cls, STRCAST("Random"));
- PyObjectHandle ord = PyObject_GetAttrString(cls, STRCAST("Ordered"));
- assert(rnd.get());
- assert(ord.get());
- if(rnd.get() == type)
- {
- val = Ice::Random;
- }
- else if(ord.get() == type)
- {
- val = Ice::Ordered;
- }
- else
- {
- PyErr_Format(PyExc_ValueError, STRCAST("ice_endpointSelection requires Random or Ordered"));
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_endpointSelection(val);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsSecure(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isSecure() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceSecure(ProxyObject* self, PyObject* args)
-{
- PyObject* flag;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &flag))
- {
- return 0;
- }
-
- int n = PyObject_IsTrue(flag);
- if(n < 0)
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_secure(n == 1);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetEncodingVersion(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* version;
- try
- {
- version = IcePy::createEncodingVersion((*self->proxy)->ice_getEncodingVersion());
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(version);
- return version;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceEncodingVersion(ProxyObject* self, PyObject* args)
-{
- Ice::EncodingVersion val;
- if(!getEncodingVersion(args, val))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("ice_encodingVersion requires an encoding version"));
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_encodingVersion(val);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsPreferSecure(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isPreferSecure() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIcePreferSecure(ProxyObject* self, PyObject* args)
-{
- PyObject* flag;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &flag))
- {
- return 0;
- }
-
- int n = PyObject_IsTrue(flag);
- if(n < 0)
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_preferSecure(n == 1);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetRouter(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::RouterPrx router;
- try
- {
- router = (*self->proxy)->ice_getRouter();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(!router)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- PyObject* routerProxyType = lookupType("Ice.RouterPrx");
- assert(routerProxyType);
- return createProxy(router, *self->communicator, routerProxyType);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceRouter(ProxyObject* self, PyObject* args)
-{
- PyObject* p;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &p))
- {
- return 0;
- }
-
- Ice::ObjectPrx proxy;
- if(!getProxyArg(p, "ice_router", "rtr", proxy, "Ice.RouterPrx"))
- {
- return 0;
- }
-
- Ice::RouterPrx router = Ice::RouterPrx::uncheckedCast(proxy);
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_router(router);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetLocator(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::LocatorPrx locator;
- try
- {
- locator = (*self->proxy)->ice_getLocator();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(!locator)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- PyObject* locatorProxyType = lookupType("Ice.LocatorPrx");
- assert(locatorProxyType);
- return createProxy(locator, *self->communicator, locatorProxyType);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceLocator(ProxyObject* self, PyObject* args)
-{
- PyObject* p;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &p))
- {
- return 0;
- }
-
- Ice::ObjectPrx proxy;
- if(!getProxyArg(p, "ice_locator", "loc", proxy, "Ice.LocatorPrx"))
- {
- return 0;
- }
-
- Ice::LocatorPrx locator = Ice::LocatorPrx::uncheckedCast(proxy);
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_locator(locator);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceTwoway(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_twoway();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsTwoway(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isTwoway() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceOneway(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_oneway();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsOneway(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isOneway() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceBatchOneway(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_batchOneway();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsBatchOneway(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isBatchOneway() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceDatagram(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_datagram();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsDatagram(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isDatagram() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceBatchDatagram(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_batchDatagram();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsBatchDatagram(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isBatchDatagram() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceCompress(ProxyObject* self, PyObject* args)
-{
- PyObject* flag;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &flag))
- {
- return 0;
- }
-
- int n = PyObject_IsTrue(flag);
- if(n < 0)
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_compress(n == 1);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceTimeout(ProxyObject* self, PyObject* args)
-{
- int timeout;
- if(!PyArg_ParseTuple(args, STRCAST("i"), &timeout))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_timeout(timeout);
- }
- catch(const IceUtil::IllegalArgumentException& ex)
- {
- PyErr_Format(PyExc_RuntimeError, "%s", STRCAST(ex.reason().c_str()));
- return 0;
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceIsCollocationOptimized(ProxyObject* self)
-{
- assert(self->proxy);
-
- PyObject* b;
- try
- {
- b = (*self->proxy)->ice_isCollocationOptimized() ? getTrue() : getFalse();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(b);
- return b;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceCollocationOptimized(ProxyObject* self, PyObject* args)
-{
- PyObject* flag;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &flag))
- {
- return 0;
- }
-
- int n = PyObject_IsTrue(flag);
- if(n < 0)
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_collocationOptimized(n == 1);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceConnectionId(ProxyObject* self, PyObject* args)
-{
- PyObject* idObj;
- if(!PyArg_ParseTuple(args, STRCAST("O"), &idObj))
- {
- return 0;
- }
-
- string id;
- if(!getStringArg(idObj, "id", id))
- {
- return 0;
- }
-
- assert(self->proxy);
-
- Ice::ObjectPrx newProxy;
- try
- {
- newProxy = (*self->proxy)->ice_connectionId(id);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- return createProxy(newProxy, *self->communicator, reinterpret_cast<PyObject*>(Py_TYPE(self)));
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetConnection(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ConnectionPtr con;
- try
- {
- con = (*self->proxy)->ice_getConnection();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(con)
- {
- return createConnection(con, *self->communicator);
- }
- else
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceGetConnection(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- assert(self->proxy);
-
- static char* argNames[] =
- {
- const_cast<char*>("_response"),
- const_cast<char*>("_ex"),
- 0
- };
-
- PyObject* response = Py_None;
- PyObject* ex = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("|OO"), argNames, &response, &ex))
- {
- return 0;
- }
-
- if(response == Py_None)
- {
- response = 0;
- }
- if(ex == Py_None)
- {
- ex = 0;
- }
-
- if(!response && ex)
- {
- PyErr_Format(PyExc_RuntimeError,
- STRCAST("response callback must also be provided when exception callback is used"));
- return 0;
- }
-
- Ice::Callback_Object_ice_getConnectionPtr cb;
- if(response || ex)
- {
- GetConnectionCallbackPtr d = new GetConnectionCallback(*self->communicator, response, ex, "ice_getConnection");
- cb = Ice::newCallback_Object_ice_getConnection(d, &GetConnectionCallback::response,
- &GetConnectionCallback::exception);
- }
-
- Ice::AsyncResultPtr result;
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during remote invocations.
-
- if(cb)
- {
- result = (*self->proxy)->begin_ice_getConnection(cb);
- }
- else
- {
- result = (*self->proxy)->begin_ice_getConnection();
- }
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- PyObjectHandle communicator = getCommunicatorWrapper(*self->communicator);
- return createAsyncResult(result, reinterpret_cast<PyObject*>(self), 0, communicator.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceGetConnection(ProxyObject* self, PyObject* args)
-{
- assert(self->proxy);
-
- PyObject* result;
- if(!PyArg_ParseTuple(args, STRCAST("O!"), &AsyncResultType, &result))
- {
- return 0;
- }
-
- Ice::AsyncResultPtr r = getAsyncResult(result);
- Ice::ConnectionPtr con;
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during blocking invocations.
- con = (*self->proxy)->end_ice_getConnection(r);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(con)
- {
- return createConnection(con, *self->communicator);
- }
- else
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceGetCachedConnection(ProxyObject* self)
-{
- assert(self->proxy);
-
- Ice::ConnectionPtr con;
- try
- {
- con = (*self->proxy)->ice_getCachedConnection();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(con)
- {
- return createConnection(con, *self->communicator);
- }
- else
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceFlushBatchRequests(ProxyObject* self)
-{
- assert(self->proxy);
-
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during remote invocations.
- (*self->proxy)->ice_flushBatchRequests();
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceFlushBatchRequests(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- assert(self->proxy);
-
- static char* argNames[] =
- {
- const_cast<char*>("_ex"),
- const_cast<char*>("_sent"),
- 0
- };
- PyObject* ex = Py_None;
- PyObject* sent = Py_None;
- if(!PyArg_ParseTupleAndKeywords(args, kwds, STRCAST("|OO"), argNames, &ex, &sent))
- {
- return 0;
- }
-
- if(ex == Py_None)
- {
- ex = 0;
- }
- if(sent == Py_None)
- {
- sent = 0;
- }
-
- if(!ex && sent)
- {
- PyErr_Format(PyExc_RuntimeError,
- STRCAST("exception callback must also be provided when sent callback is used"));
- return 0;
- }
-
- Ice::Callback_Object_ice_flushBatchRequestsPtr cb;
- if(ex || sent)
- {
- FlushCallbackPtr d = new FlushCallback(ex, sent, "ice_flushBatchRequests");
- cb = Ice::newCallback_Object_ice_flushBatchRequests(d, &FlushCallback::exception, &FlushCallback::sent);
- }
-
- Ice::AsyncResultPtr result;
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during remote invocations.
-
- if(cb)
- {
- result = (*self->proxy)->begin_ice_flushBatchRequests(cb);
- }
- else
- {
- result = (*self->proxy)->begin_ice_flushBatchRequests();
- }
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- PyObjectHandle communicator = getCommunicatorWrapper(*self->communicator);
- return createAsyncResult(result, reinterpret_cast<PyObject*>(self), 0, communicator.get());
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceFlushBatchRequests(ProxyObject* self, PyObject* args)
-{
- assert(self->proxy);
-
- PyObject* result;
- if(!PyArg_ParseTuple(args, STRCAST("O!"), &AsyncResultType, &result))
- {
- return 0;
- }
-
- Ice::AsyncResultPtr r = getAsyncResult(result);
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during blocking invocations.
- (*self->proxy)->end_ice_flushBatchRequests(r);
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-namespace IcePy
-{
-class AMI_Object_ice_flushBatchRequestsI : public IceUtil::Shared
-{
-public:
-
- AMI_Object_ice_flushBatchRequestsI(PyObject*);
- ~AMI_Object_ice_flushBatchRequestsI();
-
- void exception(const Ice::Exception&);
- void sent(bool);
-
-protected:
-
- PyObject* _callback;
-};
-typedef IceUtil::Handle<AMI_Object_ice_flushBatchRequestsI> AMI_Object_ice_flushBatchRequestsIPtr;
-
-AMI_Object_ice_flushBatchRequestsI::AMI_Object_ice_flushBatchRequestsI(PyObject* callback) :
- _callback(callback)
-{
- Py_INCREF(callback);
-}
-
-AMI_Object_ice_flushBatchRequestsI::~AMI_Object_ice_flushBatchRequestsI()
-{
- AdoptThread adoptThread; // Ensure the current thread is able to call into Python.
-
- Py_DECREF(_callback);
-}
-
-void
-AMI_Object_ice_flushBatchRequestsI::exception(const Ice::Exception& ex)
-{
- AdoptThread adoptThread; // Ensure the current thread is able to call into Python.
-
- const string methodName = "ice_exception";
- if(!PyObject_HasAttrString(_callback, STRCAST(methodName.c_str())))
- {
- ostringstream ostr;
- ostr << "AMI callback object for ice_flushBatchRequests does not define " << methodName << "()";
- string str = ostr.str();
- PyErr_Warn(PyExc_RuntimeWarning, const_cast<char*>(str.c_str()));
- }
- else
- {
- PyObjectHandle method = PyObject_GetAttrString(_callback, STRCAST(methodName.c_str()));
- assert(method.get());
- PyObjectHandle exh = convertException(ex);
- assert(exh.get());
-
- PyObjectHandle args = Py_BuildValue(STRCAST("(O)"), exh.get());
- PyObjectHandle tmp = PyObject_Call(method.get(), args.get(), 0);
- if(PyErr_Occurred())
- {
- PyErr_Print();
- }
- }
-}
-
-void
-AMI_Object_ice_flushBatchRequestsI::sent(bool)
-{
- AdoptThread adoptThread; // Ensure the current thread is able to call into Python.
-
- const string methodName = "ice_sent";
- if(PyObject_HasAttrString(_callback, STRCAST(methodName.c_str())))
- {
- PyObjectHandle method = PyObject_GetAttrString(_callback, STRCAST(methodName.c_str()));
- assert(method.get());
- PyObjectHandle args = PyTuple_New(0);
- PyObjectHandle tmp = PyObject_Call(method.get(), args.get(), 0);
- if(PyErr_Occurred())
- {
- PyErr_Print();
- }
- }
-}
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceInvoke(ProxyObject* self, PyObject* args)
-{
- return iceInvoke(reinterpret_cast<PyObject*>(self), args);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyBeginIceInvoke(ProxyObject* self, PyObject* args, PyObject* kwds)
-{
- return beginIceInvoke(reinterpret_cast<PyObject*>(self), args, kwds);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyEndIceInvoke(ProxyObject* self, PyObject* args)
-{
- return endIceInvoke(reinterpret_cast<PyObject*>(self), args);
-}
-
-static PyObject*
-checkedCastImpl(ProxyObject* p, const string& id, PyObject* facet, PyObject* ctx, PyObject* type)
-{
- Ice::ObjectPrx target;
- if(!facet || facet == Py_None)
- {
- target = *p->proxy;
- }
- else
- {
- string facetStr = getString(facet);
- target = (*p->proxy)->ice_facet(facetStr);
- }
-
- bool b = false;
- try
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during remote invocations.
- if(!ctx || ctx == Py_None)
- {
- b = target->ice_isA(id);
- }
- else
- {
- Ice::Context c;
- if(!dictionaryToContext(ctx, c))
- {
- return 0;
- }
- b = target->ice_isA(id, c);
- }
- }
- catch(const Ice::FacetNotExistException&)
- {
- // Ignore.
- }
- catch(const Ice::Exception& ex)
- {
- setPythonException(ex);
- return 0;
- }
-
- if(b)
- {
- return createProxy(target, *p->communicator, type);
- }
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceCheckedCast(PyObject* type, PyObject* args)
-{
- //
- // ice_checkedCast is called from generated code, therefore we always expect
- // to receive four arguments.
- //
- PyObject* obj;
- char* id;
- PyObject* facetOrCtx = 0;
- PyObject* ctx = 0;
- if(!PyArg_ParseTuple(args, STRCAST("OsOO"), &obj, &id, &facetOrCtx, &ctx))
- {
- return 0;
- }
-
- if(obj == Py_None)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- if(!checkProxy(obj))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("ice_checkedCast requires a proxy argument"));
- return 0;
- }
-
- PyObject* facet = 0;
-
- if(checkString(facetOrCtx))
- {
- facet = facetOrCtx;
- }
- else if(PyDict_Check(facetOrCtx))
- {
- if(ctx != Py_None)
- {
- PyErr_Format(PyExc_ValueError, STRCAST("facet argument to checkedCast must be a string"));
- return 0;
- }
- ctx = facetOrCtx;
- }
- else if(facetOrCtx != Py_None)
- {
- PyErr_Format(PyExc_ValueError, STRCAST("second argument to checkedCast must be a facet or context"));
- return 0;
- }
-
- if(ctx != Py_None && !PyDict_Check(ctx))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("context argument to checkedCast must be a dictionary"));
- return 0;
- }
-
- return checkedCastImpl(reinterpret_cast<ProxyObject*>(obj), id, facet, ctx, type);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceUncheckedCast(PyObject* type, PyObject* args)
-{
- //
- // ice_uncheckedCast is called from generated code, therefore we always expect
- // to receive two arguments.
- //
- PyObject* obj;
- char* facet = 0;
- if(!PyArg_ParseTuple(args, STRCAST("Oz"), &obj, &facet))
- {
- return 0;
- }
-
- if(obj == Py_None)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- if(!checkProxy(obj))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("ice_uncheckedCast requires a proxy argument"));
- return 0;
- }
-
- ProxyObject* p = reinterpret_cast<ProxyObject*>(obj);
-
- if(facet)
- {
- return createProxy((*p->proxy)->ice_facet(facet), *p->communicator, type);
- }
- else
- {
- return createProxy(*p->proxy, *p->communicator, type);
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyCheckedCast(PyObject* /*self*/, PyObject* args)
-{
- PyObject* obj;
- PyObject* arg1 = 0;
- PyObject* arg2 = 0;
- if(!PyArg_ParseTuple(args, STRCAST("O|OO"), &obj, &arg1, &arg2))
- {
- return 0;
- }
-
- if(obj == Py_None)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- if(!checkProxy(obj))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("checkedCast requires a proxy argument"));
- return 0;
- }
-
- PyObject* facet = 0;
- PyObject* ctx = 0;
-
- if(arg1 != 0 && arg2 != 0)
- {
- if(arg1 == Py_None)
- {
- arg1 = 0;
- }
-
- if(arg2 == Py_None)
- {
- arg2 = 0;
- }
-
- if(arg1 != 0)
- {
- if(!checkString(arg1))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("facet argument to checkedCast must be a string"));
- return 0;
- }
- facet = arg1;
- }
-
- if(arg2 != 0 && !PyDict_Check(arg2))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("context argument to checkedCast must be a dictionary"));
- return 0;
- }
- ctx = arg2;
- }
- else if(arg1 != 0 && arg1 != Py_None)
- {
- if(checkString(arg1))
- {
- facet = arg1;
- }
- else if(PyDict_Check(arg1))
- {
- ctx = arg1;
- }
- else
- {
- PyErr_Format(PyExc_ValueError, STRCAST("second argument to checkedCast must be a facet or context"));
- return 0;
- }
- }
-
- return checkedCastImpl(reinterpret_cast<ProxyObject*>(obj), "::Ice::Object", facet, ctx, 0);
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyUncheckedCast(PyObject* /*self*/, PyObject* args)
-{
- PyObject* obj;
- PyObject* facetObj = 0;
- if(!PyArg_ParseTuple(args, STRCAST("O|O"), &obj, &facetObj))
- {
- return 0;
- }
-
- if(obj == Py_None)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- string facet;
- if(facetObj)
- {
- if(!getStringArg(facetObj, "facet", facet))
- {
- return 0;
- }
- }
-
- if(!checkProxy(obj))
- {
- PyErr_Format(PyExc_ValueError, STRCAST("uncheckedCast requires a proxy argument"));
- return 0;
- }
-
- ProxyObject* p = reinterpret_cast<ProxyObject*>(obj);
-
- if(facetObj)
- {
- return createProxy((*p->proxy)->ice_facet(facet), *p->communicator);
- }
- else
- {
- return createProxy(*p->proxy, *p->communicator);
- }
-}
-
-#ifdef WIN32
-extern "C"
-#endif
-static PyObject*
-proxyIceStaticId(PyObject* /*self*/)
-{
- return createString(Ice::Object::ice_staticId());
-}
-
-static PyMethodDef ProxyMethods[] =
-{
- { STRCAST("ice_getCommunicator"), reinterpret_cast<PyCFunction>(proxyIceGetCommunicator), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getCommunicator() -> Ice.Communicator")) },
- { STRCAST("ice_toString"), reinterpret_cast<PyCFunction>(proxyRepr), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_toString() -> string")) },
- { STRCAST("ice_isA"), reinterpret_cast<PyCFunction>(proxyIceIsA), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_isA(type, [ctx]) -> bool")) },
- { STRCAST("begin_ice_isA"), reinterpret_cast<PyCFunction>(proxyBeginIceIsA), METH_VARARGS | METH_KEYWORDS,
- PyDoc_STR(STRCAST("begin_ice_isA(type[, _response][, _ex][, _sent][, _ctx]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_isA"), reinterpret_cast<PyCFunction>(proxyEndIceIsA), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_isA(Ice.AsyncResult) -> bool")) },
- { STRCAST("ice_ping"), reinterpret_cast<PyCFunction>(proxyIcePing), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_ping([ctx]) -> None")) },
- { STRCAST("begin_ice_ping"), reinterpret_cast<PyCFunction>(proxyBeginIcePing), METH_VARARGS | METH_KEYWORDS,
- PyDoc_STR(STRCAST("begin_ice_ping([_response][, _ex][, _sent][, _ctx]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_ping"), reinterpret_cast<PyCFunction>(proxyEndIcePing), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_ping(Ice.AsyncResult) -> None")) },
- { STRCAST("ice_ids"), reinterpret_cast<PyCFunction>(proxyIceIds), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_ids([ctx]) -> list")) },
- { STRCAST("begin_ice_ids"), reinterpret_cast<PyCFunction>(proxyBeginIceIds), METH_VARARGS | METH_KEYWORDS,
- PyDoc_STR(STRCAST("begin_ice_ids([_response][, _ex][, _sent][, _ctx]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_ids"), reinterpret_cast<PyCFunction>(proxyEndIceIds), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_ids(Ice.AsyncResult) -> list")) },
- { STRCAST("ice_id"), reinterpret_cast<PyCFunction>(proxyIceId), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_id([ctx]) -> string")) },
- { STRCAST("begin_ice_id"), reinterpret_cast<PyCFunction>(proxyBeginIceId), METH_VARARGS | METH_KEYWORDS,
- PyDoc_STR(STRCAST("begin_ice_id([_response][, _ex][, _sent][, _ctx]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_id"), reinterpret_cast<PyCFunction>(proxyEndIceId), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_id(Ice.AsyncResult) -> string")) },
- { STRCAST("ice_getIdentity"), reinterpret_cast<PyCFunction>(proxyIceGetIdentity), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getIdentity() -> Ice.Identity")) },
- { STRCAST("ice_identity"), reinterpret_cast<PyCFunction>(proxyIceIdentity), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_identity(id) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getContext"), reinterpret_cast<PyCFunction>(proxyIceGetContext), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getContext() -> dict")) },
- { STRCAST("ice_context"), reinterpret_cast<PyCFunction>(proxyIceContext), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_context(dict) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getFacet"), reinterpret_cast<PyCFunction>(proxyIceGetFacet), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getFacet() -> string")) },
- { STRCAST("ice_facet"), reinterpret_cast<PyCFunction>(proxyIceFacet), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_facet(string) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getAdapterId"), reinterpret_cast<PyCFunction>(proxyIceGetAdapterId), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getAdapterId() -> string")) },
- { STRCAST("ice_adapterId"), reinterpret_cast<PyCFunction>(proxyIceAdapterId), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_adapterId(string) -> proxy")) },
- { STRCAST("ice_getEndpoints"), reinterpret_cast<PyCFunction>(proxyIceGetEndpoints), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getEndpoints() -> tuple")) },
- { STRCAST("ice_endpoints"), reinterpret_cast<PyCFunction>(proxyIceEndpoints), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_endpoints(tuple) -> proxy")) },
- { STRCAST("ice_getLocatorCacheTimeout"), reinterpret_cast<PyCFunction>(proxyIceGetLocatorCacheTimeout),
- METH_NOARGS, PyDoc_STR(STRCAST("ice_getLocatorCacheTimeout() -> int")) },
- { STRCAST("ice_getInvocationTimeout"), reinterpret_cast<PyCFunction>(proxyIceGetInvocationTimeout),
- METH_NOARGS, PyDoc_STR(STRCAST("ice_getInvocationTimeout() -> int")) },
- { STRCAST("ice_getConnectionId"), reinterpret_cast<PyCFunction>(proxyIceGetConnectionId),
- METH_NOARGS, PyDoc_STR(STRCAST("ice_getConnectionId() -> string")) },
- { STRCAST("ice_isCollocationOptimized"), reinterpret_cast<PyCFunction>(proxyIceIsCollocationOptimized), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isCollocationOptimized() -> bool")) },
- { STRCAST("ice_collocationOptimized"), reinterpret_cast<PyCFunction>(proxyIceCollocationOptimized), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_collocationOptimized(bool) -> Ice.ObjectPrx")) },
- { STRCAST("ice_locatorCacheTimeout"), reinterpret_cast<PyCFunction>(proxyIceLocatorCacheTimeout), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_locatorCacheTimeout(int) -> Ice.ObjectPrx")) },
- { STRCAST("ice_invocationTimeout"), reinterpret_cast<PyCFunction>(proxyIceInvocationTimeout), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_invocationTimeout(int) -> Ice.ObjectPrx")) },
- { STRCAST("ice_isConnectionCached"), reinterpret_cast<PyCFunction>(proxyIceIsConnectionCached), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isConnectionCached() -> bool")) },
- { STRCAST("ice_connectionCached"), reinterpret_cast<PyCFunction>(proxyIceConnectionCached), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_connectionCached(bool) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getEndpointSelection"), reinterpret_cast<PyCFunction>(proxyIceGetEndpointSelection), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getEndpointSelection() -> bool")) },
- { STRCAST("ice_endpointSelection"), reinterpret_cast<PyCFunction>(proxyIceEndpointSelection), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_endpointSelection(Ice.EndpointSelectionType) -> Ice.ObjectPrx")) },
- { STRCAST("ice_isSecure"), reinterpret_cast<PyCFunction>(proxyIceIsSecure), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isSecure() -> bool")) },
- { STRCAST("ice_secure"), reinterpret_cast<PyCFunction>(proxyIceSecure), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_secure(bool) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getEncodingVersion"), reinterpret_cast<PyCFunction>(proxyIceGetEncodingVersion), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getEncodingVersion() -> Ice.EncodingVersion")) },
- { STRCAST("ice_encodingVersion"), reinterpret_cast<PyCFunction>(proxyIceEncodingVersion), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_endpointSelection(Ice.EncodingVersion) -> Ice.ObjectPrx")) },
- { STRCAST("ice_isPreferSecure"), reinterpret_cast<PyCFunction>(proxyIceIsPreferSecure), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isPreferSecure() -> bool")) },
- { STRCAST("ice_preferSecure"), reinterpret_cast<PyCFunction>(proxyIcePreferSecure), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_preferSecure(bool) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getRouter"), reinterpret_cast<PyCFunction>(proxyIceGetRouter), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getRouter() -> Ice.RouterPrx")) },
- { STRCAST("ice_router"), reinterpret_cast<PyCFunction>(proxyIceRouter), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_router(Ice.RouterPrx) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getLocator"), reinterpret_cast<PyCFunction>(proxyIceGetLocator), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getLocator() -> Ice.LocatorPrx")) },
- { STRCAST("ice_locator"), reinterpret_cast<PyCFunction>(proxyIceLocator), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_locator(Ice.LocatorPrx) -> Ice.ObjectPrx")) },
- { STRCAST("ice_twoway"), reinterpret_cast<PyCFunction>(proxyIceTwoway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_twoway() -> Ice.ObjectPrx")) },
- { STRCAST("ice_isTwoway"), reinterpret_cast<PyCFunction>(proxyIceIsTwoway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isTwoway() -> bool")) },
- { STRCAST("ice_oneway"), reinterpret_cast<PyCFunction>(proxyIceOneway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_oneway() -> Ice.ObjectPrx")) },
- { STRCAST("ice_isOneway"), reinterpret_cast<PyCFunction>(proxyIceIsOneway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isOneway() -> bool")) },
- { STRCAST("ice_batchOneway"), reinterpret_cast<PyCFunction>(proxyIceBatchOneway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_batchOneway() -> Ice.ObjectPrx")) },
- { STRCAST("ice_isBatchOneway"), reinterpret_cast<PyCFunction>(proxyIceIsBatchOneway), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isBatchOneway() -> bool")) },
- { STRCAST("ice_datagram"), reinterpret_cast<PyCFunction>(proxyIceDatagram), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_datagram() -> Ice.ObjectPrx")) },
- { STRCAST("ice_isDatagram"), reinterpret_cast<PyCFunction>(proxyIceIsDatagram), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isDatagram() -> bool")) },
- { STRCAST("ice_batchDatagram"), reinterpret_cast<PyCFunction>(proxyIceBatchDatagram), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_batchDatagram() -> Ice.ObjectPrx")) },
- { STRCAST("ice_isBatchDatagram"), reinterpret_cast<PyCFunction>(proxyIceIsBatchDatagram), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_isBatchDatagram() -> bool")) },
- { STRCAST("ice_compress"), reinterpret_cast<PyCFunction>(proxyIceCompress), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_compress(bool) -> Ice.ObjectPrx")) },
- { STRCAST("ice_timeout"), reinterpret_cast<PyCFunction>(proxyIceTimeout), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_timeout(int) -> Ice.ObjectPrx")) },
- { STRCAST("ice_connectionId"), reinterpret_cast<PyCFunction>(proxyIceConnectionId), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_connectionId(string) -> Ice.ObjectPrx")) },
- { STRCAST("ice_getConnection"), reinterpret_cast<PyCFunction>(proxyIceGetConnection), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getConnection() -> Ice.Connection")) },
- { STRCAST("begin_ice_getConnection"), reinterpret_cast<PyCFunction>(proxyBeginIceGetConnection),
- METH_VARARGS | METH_KEYWORDS, PyDoc_STR(STRCAST("begin_ice_getConnection([_response][, _ex]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_getConnection"), reinterpret_cast<PyCFunction>(proxyEndIceGetConnection), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_getConnection(Ice.AsyncResult) -> Ice.Connection")) },
- { STRCAST("ice_getCachedConnection"), reinterpret_cast<PyCFunction>(proxyIceGetCachedConnection), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_getCachedConnection() -> Ice.Connection")) },
- { STRCAST("ice_flushBatchRequests"), reinterpret_cast<PyCFunction>(proxyIceFlushBatchRequests), METH_NOARGS,
- PyDoc_STR(STRCAST("ice_flushBatchRequests() -> void")) },
- { STRCAST("begin_ice_flushBatchRequests"), reinterpret_cast<PyCFunction>(proxyBeginIceFlushBatchRequests),
- METH_VARARGS | METH_KEYWORDS, PyDoc_STR(STRCAST("begin_ice_flushBatchRequests([_ex][, _sent]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_flushBatchRequests"), reinterpret_cast<PyCFunction>(proxyEndIceFlushBatchRequests), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_flushBatchRequests(Ice.AsyncResult) -> void")) },
- { STRCAST("ice_invoke"), reinterpret_cast<PyCFunction>(proxyIceInvoke), METH_VARARGS,
- PyDoc_STR(STRCAST("ice_invoke(operation, mode, inParams) -> bool, outParams")) },
- { STRCAST("begin_ice_invoke"), reinterpret_cast<PyCFunction>(proxyBeginIceInvoke), METH_VARARGS | METH_KEYWORDS,
- PyDoc_STR(STRCAST("begin_ice_invoke(op, mode, inParams[, _response][, _ex][, _sent][, _ctx]) -> Ice.AsyncResult")) },
- { STRCAST("end_ice_invoke"), reinterpret_cast<PyCFunction>(proxyEndIceInvoke), METH_VARARGS,
- PyDoc_STR(STRCAST("end_ice_invoke(Ice.AsyncResult) -> (bool, results)")) },
- { STRCAST("ice_checkedCast"), reinterpret_cast<PyCFunction>(proxyIceCheckedCast), METH_VARARGS | METH_CLASS,
- PyDoc_STR(STRCAST("ice_checkedCast(proxy, id[, facetOrCtx[, ctx]]) -> proxy")) },
- { STRCAST("ice_uncheckedCast"), reinterpret_cast<PyCFunction>(proxyIceUncheckedCast), METH_VARARGS | METH_CLASS,
- PyDoc_STR(STRCAST("ice_uncheckedCast(proxy) -> proxy")) },
- { STRCAST("checkedCast"), reinterpret_cast<PyCFunction>(proxyCheckedCast), METH_VARARGS | METH_STATIC,
- PyDoc_STR(STRCAST("checkedCast(proxy) -> proxy")) },
- { STRCAST("uncheckedCast"), reinterpret_cast<PyCFunction>(proxyUncheckedCast), METH_VARARGS | METH_STATIC,
- PyDoc_STR(STRCAST("uncheckedCast(proxy) -> proxy")) },
- { STRCAST("ice_staticId"), reinterpret_cast<PyCFunction>(proxyIceStaticId), METH_NOARGS | METH_STATIC,
- PyDoc_STR(STRCAST("ice_staticId() -> string")) },
- { 0, 0 } /* sentinel */
-};
-
-namespace IcePy
-{
-
-PyTypeObject ProxyType =
-{
- /* The ob_type field must be initialized in the module init function
- * to be portable to Windows without using C++. */
- PyVarObject_HEAD_INIT(0, 0)
- STRCAST("IcePy.ObjectPrx"), /* tp_name */
- sizeof(ProxyObject), /* tp_basicsize */
- 0, /* tp_itemsize */
- /* methods */
- reinterpret_cast<destructor>(proxyDealloc), /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- reinterpret_cast<reprfunc>(proxyRepr), /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- reinterpret_cast<hashfunc>(proxyHash), /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
-#if PY_VERSION_HEX >= 0x03000000
- Py_TPFLAGS_BASETYPE, /* tp_flags */
-#else
- Py_TPFLAGS_BASETYPE |
- Py_TPFLAGS_HAVE_RICHCOMPARE |
- Py_TPFLAGS_HAVE_CLASS, /* tp_flags */
-#endif
- 0, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- reinterpret_cast<richcmpfunc>(proxyCompare), /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- ProxyMethods, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- reinterpret_cast<newfunc>(proxyNew), /* tp_new */
- 0, /* tp_free */
- 0, /* tp_is_gc */
-};
-
-}
-
-bool
-IcePy::initProxy(PyObject* module)
-{
- if(PyType_Ready(&ProxyType) < 0)
- {
- return false;
- }
- PyTypeObject* proxyType = &ProxyType; // Necessary to prevent GCC's strict-alias warnings.
- if(PyModule_AddObject(module, STRCAST("ObjectPrx"), reinterpret_cast<PyObject*>(proxyType)) < 0)
- {
- return false;
- }
-
- return true;
-}
-
-PyObject*
-IcePy::createProxy(const Ice::ObjectPrx& proxy, const Ice::CommunicatorPtr& communicator, PyObject* type)
-{
- assert(proxy);
-
- if(!type)
- {
- PyTypeObject* proxyType = &ProxyType; // Necessary to prevent GCC's strict-alias warnings.
- type = reinterpret_cast<PyObject*>(proxyType);
- }
- return reinterpret_cast<PyObject*>(allocateProxy(proxy, communicator, type));
-}
-
-bool
-IcePy::checkProxy(PyObject* p)
-{
- PyTypeObject* type = &ProxyType; // Necessary to prevent GCC's strict-alias warnings.
- return PyObject_IsInstance(p, reinterpret_cast<PyObject*>(type)) == 1;
-}
-
-Ice::ObjectPrx
-IcePy::getProxy(PyObject* p)
-{
- assert(checkProxy(p));
- ProxyObject* obj = reinterpret_cast<ProxyObject*>(p);
- return *obj->proxy;
-}
-
-bool
-IcePy::getProxyArg(PyObject* p, const string& func, const string& arg, Ice::ObjectPrx& proxy, const string& type)
-{
- bool result = true;
-
- if(checkProxy(p))
- {
- if(!type.empty())
- {
- PyObject* proxyType = lookupType(type);
- assert(proxyType);
- if(!PyObject_IsInstance(p, proxyType))
- {
- result = false;
- }
- }
- }
- else if(p != Py_None)
- {
- result = false;
- }
-
- if(result)
- {
- if(p != Py_None)
- {
- ProxyObject* obj = reinterpret_cast<ProxyObject*>(p);
- proxy = *obj->proxy;
- }
- else
- {
- proxy = 0;
- }
- }
- else
- {
- string typeName = type.empty() ? "Ice.ObjectPrx" : type;
- PyErr_Format(PyExc_ValueError, STRCAST("%s expects a proxy of type %s or None for argument '%s'"),
- func.c_str(), typeName.c_str(), arg.c_str());
- }
-
- return result;
-}
-
-Ice::CommunicatorPtr
-IcePy::getProxyCommunicator(PyObject* p)
-{
- assert(checkProxy(p));
- ProxyObject* obj = reinterpret_cast<ProxyObject*>(p);
- return *obj->communicator;
-}