<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<!-- MHonArc v2.6.10 -->
	<channel>
		<title>paho-dev</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/maillist.html</link>
		<description>paho-dev</description>
		<language>en-us</language>
		<pubDate>Wed, 22 May 2013 08:20:05 GMT</pubDate>
		<lastBuildDate>Wed, 22 May 2013 08:20:05 GMT</lastBuildDate>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>MHonArc RSS 2.0 RCFile</generator>
		<managingEditor>webmaster@eclipse.org (Webmaster)</managingEditor>
		<webMaster>webmaster@eclipse.org (Webmaster)</webMaster>
		<image>
			<title>paho-dev</title>
			<url>http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg</url>
			<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/maillist.html</link>
		</image>
 

	<item>
		<title>Re: [paho-dev] Java Micro Edition (JME) MQTT client?</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00631.html</link>
		<description>Hi Mike, will definitely keep an eye on the Java 8 compact profile.  (Its a shame that MicroEdition was not designed and implemented this way from day one!) In the meantime given the recent slew of interest in JME combined with the relative simplicity in e...</description>
		<content:encoded><![CDATA[<font size=2 face="sans-serif">Hi Mike, </font>
<br><font size=2 face="sans-serif">will definitely keep an eye on the Java
8 compact profile. &nbsp;(Its a shame that MicroEdition was not designed
and implemented this way from day one!)</font>
<br>
<br><font size=2 face="sans-serif">In the meantime given the recent slew
of interest in JME combined with the relative simplicity in enhancing the
current MQTTclient will forge ahead with JME support. <br>
</font>
<br><font size=2 color=#808080 face="Verdana"><br>
All the best <br>
Dave</font><font size=3> &nbsp;</font>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">&quot;Mike Milinkovich&quot;
&lt;mike.milinkovich@xxxxxxxxxxx&gt;</font>
<br><font size=1 color=#5f5f5f face="sans-serif">To: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">&quot;'General development
discussions for paho project'&quot; &lt;paho-dev@xxxxxxxxxxx&gt;, </font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">21/05/2013 21:18</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">Re: [paho-dev]
Java Micro Edition (JME) MQTT client?</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Sent by: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">paho-dev-bounces@xxxxxxxxxxx</font>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 color=#004080 face="Calibri">Dave,</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 color=#004080 face="Calibri">I don&#xE2;t have much to contribute
on which flavour of Java ME to target. But I would like to suggest that
you keep the Java 8 Compact Profile[1] in mind as a future target reference
for the Java client. If the client can run on the smallest profile, that
will open some interesting options.</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 color=#004080 face="Calibri">[1] </font><a href=http://openjdk.java.net/jeps/161><font size=2 color=blue face="Calibri"><u>http://openjdk.java.net/jeps/161</u></font></a><font size=2 color=#004080 face="Calibri">
</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 color=#004080 face="Calibri">Mike Milinkovich</font>
<br><a href=mailto:mike.milinkovich@xxxxxxxxxxx><font size=2 color=blue face="Calibri"><u>mike.milinkovich@xxxxxxxxxxx</u></font></a>
<br><font size=2 color=#004080 face="Calibri">+1.613.220.3223</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 face="Tahoma"><b>From:</b> paho-dev-bounces@xxxxxxxxxxx
[</font><a href="mailto:paho-dev-bounces@xxxxxxxxxxx"><font size=2 face="Tahoma">mailto:paho-dev-bounces@xxxxxxxxxxx</font></a><font size=2 face="Tahoma">]
<b>On Behalf Of </b>Dave Locke<b><br>
Sent:</b> May-21-13 3:06 PM<b><br>
To:</b> paho-dev@xxxxxxxxxxx<b><br>
Subject:</b> [paho-dev] Java Micro Edition (JME) MQTT client?</font>
<br><font size=3 face="Times New Roman">&nbsp;</font>
<br><font size=2 face="Arial">Hi,</font><font size=3 face="Times New Roman">
</font><font size=2 face="Arial"><br>
I have just started looking at the addition of support for Java Micro Edition
(JME) to the Paho Java Client. &nbsp; There are a few flavours of JME,
the one that looks like a good starting point for development and test
is </font><font size=2 color=#004080 face="Calibri">JME 3.2 CLDC and IMP-NG</font><font size=2 face="Arial">.
&nbsp;Are there any other flavours that you would like to see in the mix?
&nbsp;Also any offers to help particularly test would be much appreciated?
</font><font size=3 face="Times New Roman"><br>
</font><font size=2 face="Arial"><br>
The current Java codebase still compiles at Java 1.4.2 which means a large
percentage of the code can remain common between the JSE and JME client.
Once things are underway a new JME branch will be created off the Develop
branch to host the JME client while under development. &nbsp; </font><font size=2 color=#808080 face="Verdana"><br>
<br>
All the best</font><font size=3 face="Times New Roman"> </font><font size=2 color=#808080 face="Verdana"><br>
Dave</font><font size=3 face="Times New Roman"> <br>
 &nbsp;</font><font size=2 face="Arial"><br>
Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</font><tt><font size=2>_______________________________________________<br>
paho-dev mailing list<br>
paho-dev@xxxxxxxxxxx<br>
</font></tt><a href="http://dev.eclipse.org/mailman/listinfo/paho-dev"><tt><font size=2>http://dev.eclipse.org/mailman/listinfo/paho-dev</font></tt></a><tt><font size=2><br>
</font></tt>
<br><font size=2 face="sans-serif"><br>
Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU<br>
</font>
]]></content:encoded>
		<pubDate>Wed, 22 May 2013 08:13:21 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00631.html</guid>
		<author>locke@xxxxxxx (Dave Locke)</author>
	</item>


	<item>
		<title>Re: [paho-dev] Java Micro Edition (JME) MQTT client?</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00630.html</link>
		<description>Dave, I don&amp;#8217;t have much to contribute on which flavour of Java ME to target. But I would like to suggest that you keep the Java 8 Compact Profile[1] in mind as a future target reference for the Java client. If the client can run on the smallest profile, th...</description>
		<content:encoded><![CDATA[<table width="100%"><tr><td style="a:link { color: blue } a:visited { color: purple } "><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Dave,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I don&#8217;t have much to contribute on which flavour of Java ME to target. But I would like to suggest that you keep the Java 8 Compact Profile[1] in mind as a future target reference for the Java client. If the client can run on the smallest profile, that will open some interesting options.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>[1] <a href="http://openjdk.java.net/jeps/161">http://openjdk.java.net/jeps/161</a> <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Mike Milinkovich<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><a href="mailto:mike.milinkovich@xxxxxxxxxxx"><span style='color:blue'>mike.milinkovich@xxxxxxxxxxx</span></a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>+1.613.220.3223<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> paho-dev-bounces@xxxxxxxxxxx [mailto:paho-dev-bounces@xxxxxxxxxxx] <b>On Behalf Of </b>Dave Locke<br><b>Sent:</b> May-21-13 3:06 PM<br><b>To:</b> paho-dev@xxxxxxxxxxx<br><b>Subject:</b> [paho-dev] Java Micro Edition (JME) MQTT client?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Hi,</span> <br><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I have just started looking at the addition of support for Java Micro Edition (JME) to the Paho Java Client. &nbsp; There are a few flavours of JME, the one that looks like a good starting point for development and test is </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080'>JME 3.2 CLDC and IMP-NG</span><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>. &nbsp;Are there any other flavours that you would like to see in the mix? &nbsp;Also any offers to help particularly test would be much appreciated? </span><br><br><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>The current Java codebase still compiles at Java 1.4.2 which means a large percentage of the code can remain common between the JSE and JME client. Once things are underway a new JME branch will be created off the Develop branch to host the JME client while under development. &nbsp; </span><br><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:gray'><br>All the best</span> <br><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:gray'>Dave</span> <br>&nbsp; <span style='font-size:10.0pt;font-family:"Arial","sans-serif"'><br>Unless stated otherwise above:<br>IBM United Kingdom Limited - Registered in England and Wales with number 741598. <br>Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU</span><o:p></o:p></p></div></div></td></tr></table>]]></content:encoded>
		<pubDate>Tue, 21 May 2013 20:18:29 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00630.html</guid>
		<author>mike.milinkovich@xxxxxxx (Mike Milinkovich)</author>
	</item>
	<item>
		<title>[paho-dev] Java Micro Edition (JME) MQTT client?</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00629.html</link>
		<description>Hi, I have just started looking at the addition of support for Java Micro Edition (JME) to the Paho Java Client.   There are a few flavours of JME, the one that looks like a good starting point for development and test is JME 3.2 CLDC and IMP-NG. p;Are the...</description>
		<content:encoded><![CDATA[<font size=2 face="sans-serif">Hi,</font>
<br><font size=2 face="sans-serif">I have just started looking at the addition
of support for Java Micro Edition (JME) to the Paho Java Client. &nbsp;
There are a few flavours of JME, the one that looks like a good starting
point for development and test is </font><font size=2 color=#004080 face="Calibri">JME
3.2 CLDC and IMP-NG</font><font size=2 face="sans-serif">. &nbsp;Are there
any other flavours that you would like to see in the mix? &nbsp;Also any
offers to help particularly test would be much appreciated? </font>
<br>
<br><font size=2 face="sans-serif">The current Java codebase still compiles
at Java 1.4.2 which means a large percentage of the code can remain common
between the JSE and JME client. Once things are underway a new JME branch
will be created off the Develop branch to host the JME client while under
development. &nbsp; </font>
<br><font size=2 color=#808080 face="Verdana"><br>
All the best</font>
<br><font size=2 color=#808080 face="Verdana">Dave</font>
<br><font size=3>&nbsp; </font><font size=2 face="sans-serif"><br>
Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU<br>
</font>]]></content:encoded>
		<pubDate>Tue, 21 May 2013 19:06:32 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00629.html</guid>
		<author>locke@xxxxxxx (Dave Locke)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Sorry to be a pain!</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00628.html</link>
		<description> </description>
		<content:encoded><![CDATA[<tt>I think looking forward rather than back is the right approach for a C++ 
interface.  There is always the C interface to fall back on.</tt><br>
<br>
<pre style="margin: 0em;">Ian</pre><br>
<tt>On 21/05/13 18:12, Frank Pagliughi wrote:
</tt><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><tt>Yes, there is no problem for me to contribute it. I'm working on it on 
my own and am self-employed, so there are no company entanglements 
either. The Eclipse IP &amp; licensing should not present a problem.</tt><br>
<br>
<tt>Currently, most of the basic async functionality is working (using the 
C library/API, as is), and the example apps are ported and working. I 
literally cut and pasted the Javadoc API as a starting point, so the 
coverage and match to Java should be pretty good.</tt><br>
<br>
<tt>As I mentioned, I used C++11 extensions (shared_ptr, mutex, &amp; 
condition_variable) to get something working quickly for my own use. I 
will post it in this form, and then we can discuss the API, and how to 
pull the implementation back for older compilers. I'm thinking to 
write drop-in replacements for the missing std classes to keep the API 
intact. Look forward rather than back. Otherwise user apps would need 
to perform memory management.</tt><br>
<br>
<pre style="margin: 0em;">Frank</pre><br>
<tt><br>On 05/21/2013 11:25 AM, Ian Craggs wrote:
</tt><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><pre style="margin: 0em;">Hey Frank,</pre><br>
<tt>no problem.  I appreciate the feedback - it's good to know that the 
code is being used!  And I realize that I have some thinking to do 
about the tokens, and also explaining more about how the APIs were 
intended to be used.</tt><br>
<br>
<tt>I'd like to get a C++ layer into Eclipse Paho too, so if you are in a 
position to contribute your code (Eclipse has rules about 
contributions related to IP, licensing, etc) that would be a big 
help.  If not, for any reason, then I'll go ahead with my own, and 
take comments of course.</tt><br>
<br>
<tt>Ian
</tt></blockquote><pre style="margin: 0em;"><br></pre><br>
</blockquote><pre style="margin: 0em;"><br></pre><br>
]]></content:encoded>
		<pubDate>Tue, 21 May 2013 17:58:41 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00628.html</guid>
		<author>icraggs@xxxxxxx (Ian Craggs)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Sorry to be a pain!</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00627.html</link>
		<description> </description>
		<content:encoded><![CDATA[<tt>Yes, there is no problem for me to contribute it. I'm working on it on 
my own and am self-employed, so there are no company entanglements 
either. The Eclipse IP &amp; licensing should not present a problem.</tt><br>
<br>
<tt>Currently, most of the basic async functionality is working (using the C 
library/API, as is), and the example apps are ported and working. I 
literally cut and pasted the Javadoc API as a starting point, so the 
coverage and match to Java should be pretty good.</tt><br>
<br>
<tt>As I mentioned, I used C++11 extensions (shared_ptr, mutex, &amp; 
condition_variable) to get something working quickly for my own use. I 
will post it in this form, and then we can discuss the API, and how to 
pull the implementation back for older compilers. I'm thinking to write 
drop-in replacements for the missing std classes to keep the API intact. 
Look forward rather than back. Otherwise user apps would need to perform 
memory management.</tt><br>
<br>
<pre style="margin: 0em;">Frank</pre><br>
<tt><br>On 05/21/2013 11:25 AM, Ian Craggs wrote:
</tt><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><pre style="margin: 0em;">Hey Frank,</pre><br>
<tt>no problem.  I appreciate the feedback - it's good to know that the 
code is being used!  And I realize that I have some thinking to do 
about the tokens, and also explaining more about how the APIs were 
intended to be used.</tt><br>
<br>
<tt>I'd like to get a C++ layer into Eclipse Paho too, so if you are in a 
position to contribute your code (Eclipse has rules about 
contributions related to IP, licensing, etc) that would be a big 
help.  If not, for any reason, then I'll go ahead with my own, and 
take comments of course.</tt><br>
<br>
<tt>Ian
</tt></blockquote><pre style="margin: 0em;"><br></pre><br>
]]></content:encoded>
		<pubDate>Tue, 21 May 2013 17:12:28 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00627.html</guid>
		<author>fpagliughi@xxxxxxx (Frank Pagliughi)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Sorry to be a pain!</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00626.html</link>
		<description> _______________________________________________ paho-dev mailing list paho-dev@xxxxxxxxxxx http://dev.eclipse.org/mailman/listinfo/paho-dev -- Andy Piper | Farnborough, Hampshire (UK)blog: http://andypiper.co.uk &amp;#xA0; | &amp;#xA0; skype: andypiperuktwitter: @andypiper...</description>
		<content:encoded><![CDATA[<div dir="ltr">Just to add to Ian&#39;s response - there&#39;s little point in having an open source project without ideas and participation, so we welcome the discussion! as he said, if you are interested in contributing your C++ code, we&#39;d love to work with you to bring it in to the project if possible!<div>

<br></div><div>Thanks for the discussion!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 21, 2013 at 4:25 PM, Ian Craggs <span dir="ltr">&lt;<a href="mailto:icraggs@xxxxxxxxxxxxxxxxxxxxxxx" target="_blank">icraggs@xxxxxxxxxxxxxxxxxxxxxxx</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey Frank,<br>
<br>
no problem. &#xA0;I appreciate the feedback - it&#39;s good to know that the code is being used! &#xA0;And I realize that I have some thinking to do about the tokens, and also explaining more about how the APIs were intended to be used.<br>


<br>
I&#39;d like to get a C++ layer into Eclipse Paho too, so if you are in a position to contribute your code (Eclipse has rules about contributions related to IP, licensing, etc) that would be a big help. &#xA0;If not, for any reason, then I&#39;ll go ahead with my own, and take comments of course.<br>


<br>
Ian<br>
<br>
<br>
On 20/05/13 17:00, Frank Pagliughi wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hey Ian,<br>
<br>
BTW, I hate wandering into a project and immediately come off sounding so negative. Plus it&#39;s so easy to sound like an ass over e-mail. My intentions lie on the optimistic side.<br>
<br>
I do a lot of remote data loggers and robotic systems with a little processors sending messages around. MQTT looks great for a lot of that. I&#39;m glad I stumbled upon it. At some point, I&#39;ll probably want to port your library to an RTOS, like eCos. So some of my requests and comments are looking toward those types of applications.<br>


<br>
And again, if I can do anything to help, let me know.<br>
<br>
The C++ library is fairly operational, but on this first pass I cheated with C++11 extensions (smart pointers and portable condition variables). I will likely finish it in this manner and post it before forking it and then hacking out the C++11 parts.<br>


<br>
Thanks,<br>
Frank<br>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
paho-dev mailing list<br>
<a href="mailto:paho-dev@xxxxxxxxxxx" target="_blank">paho-dev@xxxxxxxxxxx</a><br>
<a href="http://dev.eclipse.org/mailman/listinfo/paho-dev" target="_blank">http://dev.eclipse.org/<u></u>mailman/listinfo/paho-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Andy Piper | Farnborough, Hampshire (UK)<br>blog: <a href="http://andypiper.co.uk" target="_blank">http://andypiper.co.uk</a> &#xA0; | &#xA0; skype: andypiperuk<br>twitter: @andypiper &#xA0;| &#xA0;images: <a href="http://www.flickr.com/photos/andypiper" target="_blank">http://www.flickr.com/photos/andypiper</a>
</div>
]]></content:encoded>
		<pubDate>Tue, 21 May 2013 15:49:18 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00626.html</guid>
		<author>andypiperuk@xxxxxxx (Andy Piper)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Sorry to be a pain!</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00625.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre style="margin: 0em;">Hey Frank,</pre><br>
<tt>no problem.  I appreciate the feedback - it's good to know that the code 
is being used!  And I realize that I have some thinking to do about the 
tokens, and also explaining more about how the APIs were intended to be 
used.</tt><br>
<br>
<tt>I'd like to get a C++ layer into Eclipse Paho too, so if you are in a 
position to contribute your code (Eclipse has rules about contributions 
related to IP, licensing, etc) that would be a big help.  If not, for 
any reason, then I'll go ahead with my own, and take comments of course.</tt><br>
<br>
<pre style="margin: 0em;">Ian</pre><br>
<tt><br>On 20/05/13 17:00, Frank Pagliughi wrote:
</tt><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><pre style="margin: 0em;">Hey Ian,</pre><br>
<tt>BTW, I hate wandering into a project and immediately come off sounding 
so negative. Plus it's so easy to sound like an ass over e-mail. My 
intentions lie on the optimistic side.</tt><br>
<br>
<tt>I do a lot of remote data loggers and robotic systems with a little 
processors sending messages around. MQTT looks great for a lot of 
that. I'm glad I stumbled upon it. At some point, I'll probably want 
to port your library to an RTOS, like eCos. So some of my requests and 
comments are looking toward those types of applications.</tt><br>
<br>
<pre style="margin: 0em;">And again, if I can do anything to help, let me know.</pre><br>
<tt>The C++ library is fairly operational, but on this first pass I 
cheated with C++11 extensions (smart pointers and portable condition 
variables). I will likely finish it in this manner and post it before 
forking it and then hacking out the C++11 parts.</tt><br>
<br>
<pre style="margin: 0em;">Thanks,
Frank</pre><br>
</blockquote><pre style="margin: 0em;"><br></pre><br>
]]></content:encoded>
		<pubDate>Tue, 21 May 2013 15:25:16 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00625.html</guid>
		<author>icraggs@xxxxxxx (Ian Craggs)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Blocking &quot;wait&quot; in the C async library</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00624.html</link>
		<description> This would prevent the app from wasting CPU cycles while spinning on a flag from a callback, and can simplify client apps that don't need the full power of a callback function by eliminating the need for them for basic synchronization. Plus it would allow...</description>
		<content:encoded><![CDATA[<table width="100%"><tr><td bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #000000; "><font color="#000000">
  
  
    <div class="moz-cite-prefix"><br>
      I think I could recreate the Java library without adding function
      to the C library.&nbsp; But I think I need to revisit the behaviour of
      the message token calls.<br>
      <br>
      Ian<br>
      <br>
      <br>
      On 20/05/13 16:42, Frank Pagliughi wrote:<br>
    </div>
    <blockquote cite="" type="cite">
      
      Hi Ian,<br>
      <br>
      Thanks. That's helpful. And, I also realized that the app and any
      wrapper libraries&nbsp; can probably work around most/all the token
      issues by using userContext pointers. <br>
      <br>
      <div class="moz-cite-prefix">On 05/20/2013 10:47 AM, Ian Craggs
        wrote:<br>
      </div>
      <blockquote cite=""
        type="cite">
        
        <div class="moz-cite-prefix"><br>
          <br>
          &nbsp;&nbsp; 1. call sendMessage()&nbsp;&nbsp;&nbsp; /* no blocking at all - that is
          the point of the async API */<br>
        </div>
      </blockquote>
      <br>
      I wouldn't think it unreasonable to block long enough to place the
      message in an outgoing queue. But I understand your point. It does
      still worry me a little, though, that while waiting to be queued,
      the messages are lost to the MQTTAsync_getPendingTokens call.<br>
    </blockquote>
    <br>
    We wanted to move away from all blocking with the Async API, so you
    could make any API call within a GUI thread without fear of hanging
    the app.&nbsp; The MQTTClient API can be used where a more "simple"
    behaviour is desired. <br>
    <br>
    <blockquote cite="" type="cite">
      <blockquote cite=""
        type="cite">
        <div class="moz-cite-prefix"> <br>
          &nbsp;&nbsp; 2. get the token back in the onSuccess callback /*
          admittedly I don't like the timing of this callback currently
          which is at the same time as deliveryComplete.&nbsp; I was trying
          to match the _javascript_ API.&nbsp; I think this should happen at
          the same time as does the return from MQTTClient API (see
          below) which would give you the information to use in
          getPendingTokens, as soon as it's available.&nbsp; */<br>
        </div>
      </blockquote>
      <br>
      When you say "at the same time" can you guarantee that onSuccess
      is called first? Serially? Will onSuccess return before
      deliveryComplete is called (meaning are they called by the same
      thread, or by different ones?)<br>
      <br>
    </blockquote>
    <br>
    They are called on the same thread, serially.&nbsp; At the moment,
    deliveryComplete() is called before onSuccess() is called, which
    sounds like the wrong way round.&nbsp; I'm going to discuss this with the
    authors of the Java and _javascript_ clients.<br>
    <br>
    <blockquote cite="" type="cite">
      <blockquote cite=""
        type="cite">
        <div class="moz-cite-prefix"> <br>
          <br>
          I always thought waitForCompletion() was an erroneous and
          unnecessary addition to the Java *async* API.&nbsp;&nbsp; <br>
          <br>
          Why use the asynchronous API if you don't want to use
          callbacks?<br>
          <br>
        </div>
      </blockquote>
      <br>
      Well it depends on your application. Certainly a GUI may never
      want to block, but a microcontroller might send a message, do
      something else for a while, and then rendezvous/wait on the
      message confirmation. In that case I think what you may tend to
      find is that in practice a large percentage of callbacks become:<br>
      <blockquote>volatile bool done = false;<br>
        void myCallback() { done = true; }<br>
      </blockquote>
      So the callbacks are completely powerful and flexible, but quite
      often you just want simplicity.<br>
      <br>
      So I think the trick to a great library is in reducing the amount
      of similar code that different users will be forced to recreate.
      That's my biggest problem with the standard C library. I mean,
      seriously, how many times do I have to rewrite a linked list?!?!<br>
      <br>
      Frank<br>
      <br>
      <blockquote cite=""
        type="cite">
        <div class="moz-cite-prefix"> <br>
          On 20/05/13 15:01, Frank Pagliughi wrote:<br>
        </div>
        <blockquote cite=""
          type="cite">
          
          Hey Ian,<br>
          <br>
          It presents a simpler means of synchronization, allows the
          client to block in an OS-independent way, and mimics the API
          of the MQTT client libraries in other languages. A wait()
          function as the sole blocking call is a common pattern in
          other modern asynchronous libraries: Microsoft Async, C++11
          threads/futures. the Paho Java client library, etc. I'm not a
          GUI guy, I'm an RTOS guy, and do this pattern a lot, where a
          completed action always signals an OS synchronization object,
          but also fires an optional callback if the user requested it.<br>
          <br>
          In particular, as I originally mentioned, I'm trying to make
          the C++ API mimic the Java one as much as possible, like:<br>
          <blockquote>mqtt::itoken tok = client.publish("some topic",
            myMessage);<br>
            // Do something else for a while<br>
            tok.wait_for_completion();<br>
          </blockquote>
          I can work around this in the C++ library by intercepting the
          callbacks, but two issues make this a little more complicated
          due to to the outgoing "send" thread in the C lib:<br>
          <br>
          (1) There doesn't appear to be a way to get the
          MQTTAsync_token of a message when you send it. And thus it's
          difficult to tie a token to the message.<br>
          <br>
          (2) Upon return of the send/sendMessage calls, the message has
          "disappeared" into the queue of the send thread. It doesn't
          appear in the list of outgoing messages
          (MQTTAsync_getPendingTokens) until some time later. So it is
          easy for the app to think that all messages were sent when
          some have yet to even be queued for transmission.<br>
          <br>
          Thanks for your time,<br>
          Frank<br>
          <br>
          <div class="moz-cite-prefix">On 05/20/2013 05:30 AM, Ian
            Craggs wrote:<br>
          </div>
          <blockquote
            cite=""
            type="cite">
            
            <div class="moz-cite-prefix">A deliberate choice.&nbsp; Why have
              one blocking call in an asynchronous API which is designed
              for GUI use, amongst others?&nbsp; This is an event-oriented
              API - use the deliveryComplete callback.&nbsp; To receive
              messages with MQTTAsync, you have to use callbacks.&nbsp; You
              have to use callbacks to determine the success of API
              calls.&nbsp; <br>
              <br>
              For a blocking, simpler to use API, with less use of
              callbacks, there is MQTTClient.<br>
              <br>
              Ian<br>
              <br>
              <br>
              On 19/05/13 19:06, Frank Pagliughi wrote:<br>
            </div>
            <blockquote cite=""
              type="cite">
              
              Well, while I'm throwing sand in the works, I might as
              well continue...<br>
              <br>
              One thing that appears to be "missing" from the C async
              API is the ability to block a thread on a token while
              waiting for an action to complete. Something like:<br>
              <blockquote>int MQTTAsync_waitForCompletion(MQTTAsync
                handle, MQTTAsync_token token, int timeout);<br>
              </blockquote>
              This would prevent the app from wasting CPU cycles while
              spinning on a flag from a callback, and can simplify
              client apps that don't need the full power of a callback
              function by eliminating the need for them for basic
              synchronization. Plus it would allow the user to write
              more portable client apps, since the library would hide
              the OS-specific thread functionality.<br>
              <br>
              It appears that the library already wraps condition
              variables in Linux. Maybe Windows could use a Manual Reset
              Event to do this? <br>
              <br>
              Frank<br>
            </blockquote>
            <br>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <br>
            <pre wrap="">_______________________________________________
paho-dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:paho-dev@xxxxxxxxxxx">paho-dev@xxxxxxxxxxx</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://dev.eclipse.org/mailman/listinfo/paho-dev">http://dev.eclipse.org/mailman/listinfo/paho-dev</a>
</pre>
          </blockquote>
          <br>
        </blockquote>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
paho-dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:paho-dev@xxxxxxxxxxx">paho-dev@xxxxxxxxxxx</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://dev.eclipse.org/mailman/listinfo/paho-dev">http://dev.eclipse.org/mailman/listinfo/paho-dev</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
  

</font></td></tr></table>]]></content:encoded>
		<pubDate>Tue, 21 May 2013 08:17:27 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00624.html</guid>
		<author>icraggs@xxxxxxx (Ian Craggs)</author>
	</item>


	<item>
		<title>Re: [paho-dev] Blocking &quot;wait&quot; in the C async library</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00623.html</link>
		<description> This would prevent the app from wasting CPU cycles while spinning on a flag from a callback, and can simplify client apps that don't need the full power of a callback function by eliminating the need for them for basic synchronization. Plus it would allow...</description>
		<content:encoded><![CDATA[<table width="100%"><tr><td bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #000000; "><font color="#000000">
  
  
    Hi Ian,<br>
    <br>
    Thanks. That's helpful. And, I also realized that the app and any
    wrapper libraries&nbsp; can probably work around most/all the token
    issues by using userContext pointers. <br>
    <br>
    <div class="moz-cite-prefix">On 05/20/2013 10:47 AM, Ian Craggs
      wrote:<br>
    </div>
    <blockquote cite=""
      type="cite">
      
      <div class="moz-cite-prefix"><br>
        <br>
        &nbsp;&nbsp; 1. call sendMessage()&nbsp;&nbsp;&nbsp; /* no blocking at all - that is the
        point of the async API */<br>
      </div>
    </blockquote>
    <br>
    I wouldn't think it unreasonable to block long enough to place the
    message in an outgoing queue. But I understand your point. It does
    still worry me a little, though, that while waiting to be queued,
    the messages are lost to the MQTTAsync_getPendingTokens call.<br>
    <br>
    <blockquote cite=""
      type="cite">
      <div class="moz-cite-prefix"> <br>
        &nbsp;&nbsp; 2. get the token back in the onSuccess callback /* admittedly
        I don't like the timing of this callback currently which is at
        the same time as deliveryComplete.&nbsp; I was trying to match the
        _javascript_ API.&nbsp; I think this should happen at the same time as
        does the return from MQTTClient API (see below) which would give
        you the information to use in getPendingTokens, as soon as it's
        available.&nbsp; */<br>
      </div>
    </blockquote>
    <br>
    When you say "at the same time" can you guarantee that onSuccess is
    called first? Serially? Will onSuccess return before
    deliveryComplete is called (meaning are they called by the same
    thread, or by different ones?)<br>
    <br>
    <blockquote cite=""
      type="cite">
      <div class="moz-cite-prefix"> <br>
        <br>
        I always thought waitForCompletion() was an erroneous and
        unnecessary addition to the Java *async* API.&nbsp;&nbsp; <br>
        <br>
        Why use the asynchronous API if you don't want to use callbacks?<br>
        <br>
      </div>
    </blockquote>
    <br>
    Well it depends on your application. Certainly a GUI may never want
    to block, but a microcontroller might send a message, do something
    else for a while, and then rendezvous/wait on the message
    confirmation. In that case I think what you may tend to find is that
    in practice a large percentage of callbacks become:<br>
    <blockquote>volatile bool done = false;<br>
      void myCallback() { done = true; }<br>
    </blockquote>
    So the callbacks are completely powerful and flexible, but quite
    often you just want simplicity.<br>
    <br>
    So I think the trick to a great library is in reducing the amount of
    similar code that different users will be forced to recreate. That's
    my biggest problem with the standard C library. I mean, seriously,
    how many times do I have to rewrite a linked list?!?!<br>
    <br>
    Frank<br>
    <br>
    <blockquote cite=""
      type="cite">
      <div class="moz-cite-prefix"> <br>
        On 20/05/13 15:01, Frank Pagliughi wrote:<br>
      </div>
      <blockquote cite="" type="cite">
        
        Hey Ian,<br>
        <br>
        It presents a simpler means of synchronization, allows the
        client to block in an OS-independent way, and mimics the API of
        the MQTT client libraries in other languages. A wait() function
        as the sole blocking call is a common pattern in other modern
        asynchronous libraries: Microsoft Async, C++11 threads/futures.
        the Paho Java client library, etc. I'm not a GUI guy, I'm an
        RTOS guy, and do this pattern a lot, where a completed action
        always signals an OS synchronization object, but also fires an
        optional callback if the user requested it.<br>
        <br>
        In particular, as I originally mentioned, I'm trying to make the
        C++ API mimic the Java one as much as possible, like:<br>
        <blockquote>mqtt::itoken tok = client.publish("some topic",
          myMessage);<br>
          // Do something else for a while<br>
          tok.wait_for_completion();<br>
        </blockquote>
        I can work around this in the C++ library by intercepting the
        callbacks, but two issues make this a little more complicated
        due to to the outgoing "send" thread in the C lib:<br>
        <br>
        (1) There doesn't appear to be a way to get the MQTTAsync_token
        of a message when you send it. And thus it's difficult to tie a
        token to the message.<br>
        <br>
        (2) Upon return of the send/sendMessage calls, the message has
        "disappeared" into the queue of the send thread. It doesn't
        appear in the list of outgoing messages
        (MQTTAsync_getPendingTokens) until some time later. So it is
        easy for the app to think that all messages were sent when some
        have yet to even be queued for transmission.<br>
        <br>
        Thanks for your time,<br>
        Frank<br>
        <br>
        <div class="moz-cite-prefix">On 05/20/2013 05:30 AM, Ian Craggs
          wrote:<br>
        </div>
        <blockquote cite=""
          type="cite">
          
          <div class="moz-cite-prefix">A deliberate choice.&nbsp; Why have
            one blocking call in an asynchronous API which is designed
            for GUI use, amongst others?&nbsp; This is an event-oriented API
            - use the deliveryComplete callback.&nbsp; To receive messages
            with MQTTAsync, you have to use callbacks.&nbsp; You have to use
            callbacks to determine the success of API calls.&nbsp; <br>
            <br>
            For a blocking, simpler to use API, with less use of
            callbacks, there is MQTTClient.<br>
            <br>
            Ian<br>
            <br>
            <br>
            On 19/05/13 19:06, Frank Pagliughi wrote:<br>
          </div>
          <blockquote cite=""
            type="cite">
            
            Well, while I'm throwing sand in the works, I might as well
            continue...<br>
            <br>
            One thing that appears to be "missing" from the C async API
            is the ability to block a thread on a token while waiting
            for an action to complete. Something like:<br>
            <blockquote>int MQTTAsync_waitForCompletion(MQTTAsync
              handle, MQTTAsync_token token, int timeout);<br>
            </blockquote>
            This would prevent the app from wasting CPU cycles while
            spinning on a flag from a callback, and can simplify client
            apps that don't need the full power of a callback function
            by eliminating the need for them for basic synchronization.
            Plus it would allow the user to write more portable client
            apps, since the library would hide the OS-specific thread
            functionality.<br>
            <br>
            It appears that the library already wraps condition
            variables in Linux. Maybe Windows could use a Manual Reset
            Event to do this? <br>
            <br>
            Frank<br>
          </blockquote>
          <br>
          <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <br>
          <pre wrap="">_______________________________________________
paho-dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:paho-dev@xxxxxxxxxxx">paho-dev@xxxxxxxxxxx</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://dev.eclipse.org/mailman/listinfo/paho-dev">http://dev.eclipse.org/mailman/listinfo/paho-dev</a>
</pre>
        </blockquote>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
paho-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:paho-dev@xxxxxxxxxxx">paho-dev@xxxxxxxxxxx</a>
<a class="moz-txt-link-freetext" href="http://dev.eclipse.org/mailman/listinfo/paho-dev">http://dev.eclipse.org/mailman/listinfo/paho-dev</a>
</pre>
    </blockquote>
    <br>
  

</font></td></tr></table>]]></content:encoded>
		<pubDate>Mon, 20 May 2013 15:42:02 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00623.html</guid>
		<author>fpagliughi@xxxxxxx (Frank Pagliughi)</author>
	</item>
	<item>
		<title>Re: [paho-dev] Blocking &quot;wait&quot; in the C async library</title>
		<link>http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00622.html</link>
		<description> This would prevent the app from wasting CPU cycles while spinning on a flag from a callback, and can simplify client apps that don't need the full power of a callback function by eliminating the need for them for basic synchronization. Plus it would allow...</description>
		<content:encoded><![CDATA[<table width="100%"><tr><td bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #000000; "><font color="#000000">
  
  
    <div class="moz-cite-prefix">Hi Frank,<br>
      <br>
      so for the MQTTAsync API the model is:<br>
      <br>
      &nbsp;&nbsp; 1. call sendMessage()&nbsp;&nbsp;&nbsp; /* no blocking at all - that is the
      point of the async API */<br>
      <br>
      &nbsp;&nbsp; 2. get the token back in the onSuccess callback /* admittedly I
      don't like the timing of this callback currently which is at the
      same time as deliveryComplete.&nbsp; I was trying to match the
      _javascript_ API.&nbsp; I think this should happen at the same time as
      does the return from MQTTClient API (see below) which would give
      you the information to use in getPendingTokens, as soon as it's
      available.&nbsp; */<br>
      <br>
      &nbsp;&nbsp; 3. match that token with that in the deliveryComplete callback
      /* if you want to wait for the QoS 1/2 exchange to complete */<br>
      <br>
      The corresponding model for the MQTTClient API is:<br>
      <br>
      &nbsp;&nbsp;&nbsp; 1. call publish(), get the token back.&nbsp; /* That is because
      publish() blocks until the packet is written to the wire, and
      while the inflight message queue has no space if necessary
      (inflight message queue is limited to 1 or 10 depending on whether
      the "reliable" flag is set) */<br>
      <br>
      &nbsp;&nbsp;&nbsp; 2. call waitForCompletion()&nbsp; /* if you want to wait until the
      QoS 1/2 exchange is complete */<br>
      <br>
      I always thought waitForCompletion() was an erroneous and
      unnecessary addition to the Java *async* API.&nbsp;&nbsp; <br>
      <br>
      Why use the asynchronous API if you don't want to use callbacks?<br>
      <br>
      Ian<br>
      <br>
      <br>
      On 20/05/13 15:01, Frank Pagliughi wrote:<br>
    </div>
    <blockquote cite="" type="cite">
      
      Hey Ian,<br>
      <br>
      It presents a simpler means of synchronization, allows the client
      to block in an OS-independent way, and mimics the API of the MQTT
      client libraries in other languages. A wait() function as the sole
      blocking call is a common pattern in other modern asynchronous
      libraries: Microsoft Async, C++11 threads/futures. the Paho Java
      client library, etc. I'm not a GUI guy, I'm an RTOS guy, and do
      this pattern a lot, where a completed action always signals an OS
      synchronization object, but also fires an optional callback if the
      user requested it.<br>
      <br>
      In particular, as I originally mentioned, I'm trying to make the
      C++ API mimic the Java one as much as possible, like:<br>
      <blockquote>mqtt::itoken tok = client.publish("some topic",
        myMessage);<br>
        // Do something else for a while<br>
        tok.wait_for_completion();<br>
      </blockquote>
      I can work around this in the C++ library by intercepting the
      callbacks, but two issues make this a little more complicated due
      to to the outgoing "send" thread in the C lib:<br>
      <br>
      (1) There doesn't appear to be a way to get the MQTTAsync_token of
      a message when you send it. And thus it's difficult to tie a token
      to the message.<br>
      <br>
      (2) Upon return of the send/sendMessage calls, the message has
      "disappeared" into the queue of the send thread. It doesn't appear
      in the list of outgoing messages (MQTTAsync_getPendingTokens)
      until some time later. So it is easy for the app to think that all
      messages were sent when some have yet to even be queued for
      transmission.<br>
      <br>
      Thanks for your time,<br>
      Frank<br>
      <br>
      <div class="moz-cite-prefix">On 05/20/2013 05:30 AM, Ian Craggs
        wrote:<br>
      </div>
      <blockquote cite=""
        type="cite">
        
        <div class="moz-cite-prefix">A deliberate choice.&nbsp; Why have one
          blocking call in an asynchronous API which is designed for GUI
          use, amongst others?&nbsp; This is an event-oriented API - use the
          deliveryComplete callback.&nbsp; To receive messages with
          MQTTAsync, you have to use callbacks.&nbsp; You have to use
          callbacks to determine the success of API calls.&nbsp; <br>
          <br>
          For a blocking, simpler to use API, with less use of
          callbacks, there is MQTTClient.<br>
          <br>
          Ian<br>
          <br>
          <br>
          On 19/05/13 19:06, Frank Pagliughi wrote:<br>
        </div>
        <blockquote cite=""
          type="cite">
          
          Well, while I'm throwing sand in the works, I might as well
          continue...<br>
          <br>
          One thing that appears to be "missing" from the C async API is
          the ability to block a thread on a token while waiting for an
          action to complete. Something like:<br>
          <blockquote>int MQTTAsync_waitForCompletion(MQTTAsync handle,
            MQTTAsync_token token, int timeout);<br>
          </blockquote>
          This would prevent the app from wasting CPU cycles while
          spinning on a flag from a callback, and can simplify client
          apps that don't need the full power of a callback function by
          eliminating the need for them for basic synchronization. Plus
          it would allow the user to write more portable client apps,
          since the library would hide the OS-specific thread
          functionality.<br>
          <br>
          It appears that the library already wraps condition variables
          in Linux. Maybe Windows could use a Manual Reset Event to do
          this? <br>
          <br>
          Frank<br>
        </blockquote>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
paho-dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:paho-dev@xxxxxxxxxxx">paho-dev@xxxxxxxxxxx</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://dev.eclipse.org/mailman/listinfo/paho-dev">http://dev.eclipse.org/mailman/listinfo/paho-dev</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
  

</font></td></tr></table>]]></content:encoded>
		<pubDate>Mon, 20 May 2013 14:47:35 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/paho-dev/msg00622.html</guid>
		<author>icraggs@xxxxxxx (Ian Craggs)</author>
	</item>

 
	</channel>
	</rss>
<!-- MHonArc v2.6.10 -->
