Py_msg_queue__delete_head

Hi, All

I check the code in GNURadio 3.7.3,
gnuradio-3.7.3/gnuradio-runtime/swig/msg_queue.i

the code:
83 #ifdef SWIGPYTHON
84 %inline %{
85 gr::message::sptr py_msg_queue__delete_head(gr::msg_queue::sptr q)
{
86 gr::message::sptr msg;
87 GR_PYTHON_BLOCKING_CODE(
88 msg = q->delete_head();
89 )
90 return msg;
91 }
92
93 void py_msg_queue__insert_tail(gr::msg_queue::sptr q,
gr::message::sptr msg) {
94 GR_PYTHON_BLOCKING_CODE(
95 q->insert_tail(msg);
96 )
97 }
98 %}

output is located in “gnuradio-runtime/swig/runtime_swig.py”
the output is like:
3791 def py_msg_queue__delete_head(*args, **kwargs):
3792 “”“py_msg_queue__delete_head(sptr q) → sptr”“”
3793 return _runtime_swig.py_msg_queue__delete_head(*args, **kwargs)
3794
3795 def py_msg_queue__insert_tail(*args, **kwargs):
3796 “”“py_msg_queue__insert_tail(sptr q, sptr msg)”“”
3797 return _runtime_swig.py_msg_queue__insert_tail(*args, **kwargs)

Of course, the above in the gnuradio is work well.

I could not understand these swig output. so I write a small .i file to
test this
1 /* -- c -- */
2 // swig2.0 -python *.i
3 //swig2.0 -python -v -c++ *.i
4
5 %module(directors=“1”) util_swig
6
7 #ifdef SWIGPYTHON
8
9
10 %inline %{
11 int fun1(int q) {
12 return q;
13 }
14 %}
15
16 #endif

but there is one more line (see line 73 ) in the output file *.py

71 def fun1(*args):
72 return _util_swig.fun1(*args)
73 fun1 = _util_swig.fun1
74 # This file is compatible with both classic and new-style classes.

Is it some configuration in other place lead the output to be different
from the standard “swig command” ?

Thanks & Best Regards.

On Sat, May 10, 2014 at 10:22 PM, chenjian [email protected] wrote:

87 GR_PYTHON_BLOCKING_CODE(
97 }
3797 return _runtime_swig.py_msg_queue__insert_tail(*args, **kwargs)
6

Thanks & Best Regards.

We are not meant to understand the workings of SWIG…

But seriously, this is a SWIG question and not a GNU Radio question.
Best
ask the SWIG developers.

Tom