<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thank you for the advice!</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Unfortunately I cant get a simple example to work.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have a simple union in the header test_union.h<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
</div>
<pre style="background-color:#ffffff;color:#080808;font-family:'JetBrains Mono',monospace;font-size:9.8pt"><span style="color:#0033b3">union </span>{<span style="color:#8c8c8c;font-style:italic"><br></span><span style="color:#8c8c8c;font-style:italic">    </span><span style="color:#0033b3">int </span><span style="color:#660e7a">test1</span>;<br>    <span style="color:#0033b3">int </span><span style="color:#660e7a">test2</span>;<br>} <span style="color:#000000">u</span>;<br><br><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">And this is the best I got so far in the .sip file:</span><br><br><pre style="background-color:#ffffff;color:#080808;font-family:'JetBrains Mono',monospace;font-size:9.8pt">struct union{<br><br>%TypeHeaderCode<br>#include <test_union.h><br>%End<br><br>    int *test1 {<br>    %GetCode<br>        sipPy = PyLong_FromLongLong(sipCpp->test1)<br>        if(sipPy == NULL)<br>            sipPy = NULL;<br>    %End<br>    %SetCode<br>        if (PyLong_Check(sipPy))<br>            sipCpp->test1;<br>        else<br>            sipErr = 1;<br>    %End<br>    };<br>    int *test2 {<br>    %GetCode<br>        sipPy = PyLong_FromLongLong(sipCpp->test2);<br>        if(sipPy == NULL)<br>            sipPy = NULL;<br>    %End<br>    %SetCode<br>        if (PyLong_Check(sipPy))<br>            sipCpp->test2;<br>        else<br>            sipErr = 1;<br>    %End<br>    };<br>}u;<br></pre><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">I get a syntax error in the last line and have tried to write it so that sip would understand it,  but also with something like:<br><br><pre style="background-color:#ffffff;color:#080808;font-family:'JetBrains Mono',monospace;font-size:9.8pt">typedef struct union union;<br>union u{ ... };</pre></span></pre>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I got no luck so far. Am I completly wrong?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Some advice would be appreciated</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Thank you!<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
M.T.<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Phil Thompson <phil@riverbankcomputing.com><br>
<b>Gesendet:</b> Montag, 23. November 2020 11:48<br>
<b>An:</b> Marian Thomsen <marian.th@outlook.de><br>
<b>Cc:</b> pyqt@riverbankcomputing.com <pyqt@riverbankcomputing.com><br>
<b>Betreff:</b> Re: SIP translate Union</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">On 23/11/2020 10:40, Marian Thomsen wrote:<br>
> Hello,<br>
> <br>
> I’m trying to use SIP to translate an union. Just started using SIP<br>
> and because unions are not supported directly I cant find a way to<br>
> translate them.<br>
> What would be a good approach?<br>
> I’m trying to use %MappedType but cant get it to work.<br>
> <br>
> A simple example would be really appreciated!<br>
<br>
The most direct translation would be to wrap it as a struct and <br>
implement %GetCode and %SetCode for each of the union elements.<br>
<br>
Phil<br>
</div>
</span></font></div>
</body>
</html>