[pytango] 401/483: Implement #102 for commands
Sandor Bodo-Merle
sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:15:05 UTC 2017
This is an automated email from the git hooks/post-receive script.
sbodomerle-guest pushed a commit to annotated tag bliss_8.10
in repository pytango.
commit 5b12f71664b24a9828564886ec2c170a64052bd4
Author: tiagocoutinho <tiagocoutinho at 4e9c00fd-8f2e-0410-aa12-93ce3db5e235>
Date: Wed Aug 27 20:06:38 2014 +0000
Implement #102 for commands
git-svn-id: http://svn.code.sf.net/p/tango-cs/code/bindings/PyTango/trunk@26353 4e9c00fd-8f2e-0410-aa12-93ce3db5e235
---
src/boost/cpp/server/command.cpp | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/boost/cpp/server/command.cpp b/src/boost/cpp/server/command.cpp
index 99e8134..82577e3 100644
--- a/src/boost/cpp/server/command.cpp
+++ b/src/boost/cpp/server/command.cpp
@@ -118,15 +118,24 @@ void insert_scalar<Tango::DEV_ENCODED>(boost::python::object &o, CORBA::Any &any
bopy::object p1 = o[1];
const char* encoded_format = bopy::extract<const char *> (p0.ptr());
- const char* encoded_data = bopy::extract<const char *> (p1.ptr());
- CORBA::ULong nb = static_cast<CORBA::ULong>(bopy::len(p1));
- Tango::DevVarCharArray arr(nb, nb, (CORBA::Octet*)encoded_data, false);
+ PyObject* data_ptr = p1.ptr();
+ Py_buffer view;
+
+ if (PyObject_GetBuffer(data_ptr, &view, PyBUF_FULL_RO) < 0)
+ {
+ throw_bad_type(Tango::CmdArgTypeName[Tango::DEV_ENCODED]);
+ }
+
+ CORBA::ULong nb = static_cast<CORBA::ULong>(view.len);
+ Tango::DevVarCharArray arr(nb, nb, (CORBA::Octet*)view.buf, false);
Tango::DevEncoded *data = new Tango::DevEncoded;
data->encoded_format = CORBA::string_dup(encoded_format);
- data->encoded_data = arr;
-
+ data->encoded_data = arr;
+
any <<= data;
+
+ PyBuffer_Release(&view);
}
template<long tangoArrayTypeConst>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pytango.git
More information about the debian-science-commits
mailing list