<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pandorawiki.org/index.php?action=history&amp;feed=atom&amp;title=Using_C4A_with_libSparrowNet</id>
	<title>Using C4A with libSparrowNet - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pandorawiki.org/index.php?action=history&amp;feed=atom&amp;title=Using_C4A_with_libSparrowNet"/>
	<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;action=history"/>
	<updated>2026-05-02T23:15:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0-alpha</generator>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29803&amp;oldid=prev</id>
		<title>Ziz at 07:58, 2 July 2014</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29803&amp;oldid=prev"/>
		<updated>2014-07-02T07:58:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:58, 2 July 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot; &gt;Line 115:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 115:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //Please don't do this for real games, this will really submit scores to the game&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //Please don't do this for real games, this will really submit scores to the game&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if (spNetC4ACommitScore(profile,&amp;quot;game_name&amp;quot;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;10000&lt;/del&gt;,&amp;amp;score))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if (spNetC4ACommitScore(profile,&amp;quot;game_name&amp;quot;,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;12345&lt;/ins&gt;,&amp;amp;score&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;,10000&lt;/ins&gt;)) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//12345 is score, 100000 time out&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       printf(&amp;quot;Submit failed. Probably is the score already in the high score\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       printf(&amp;quot;Submit failed. Probably is the score already in the high score\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     else&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ziz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29675&amp;oldid=prev</id>
		<title>Kingu: spelling error</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29675&amp;oldid=prev"/>
		<updated>2014-05-04T12:10:45Z</updated>

		<summary type="html">&lt;p&gt;spelling error&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:10, 4 May 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l142&quot; &gt;Line 142:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Fusilli client =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Fusilli client =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Analog to the spaghetti client of Skeezix, Ziz made a fusilli client based on libsparrowNet, but staticly linked. So like the spaghetti client only one single file is needed. This approach is much easier than the library, but still has the advantage of running on many &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;platform&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Analog to the spaghetti client of Skeezix, Ziz made a fusilli client based on libsparrowNet, but staticly linked. So like the spaghetti client only one single file is needed. This approach is much easier than the library, but still has the advantage of running on many &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;platforms&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://github.com/theZiz/fusilli-client Here you find the code and in the build folder prebuilt binaries for many systems, even PC.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://github.com/theZiz/fusilli-client Here you find the code and in the build folder prebuilt binaries for many systems, even PC.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kingu</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29670&amp;oldid=prev</id>
		<title>Ziz: Added the fc</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29670&amp;oldid=prev"/>
		<updated>2014-05-01T23:01:58Z</updated>

		<summary type="html">&lt;p&gt;Added the fc&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 23:01, 1 May 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l140&quot; &gt;Line 140:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 140:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Have a look at [https://github.com/theZiz/snowman Snowman], [https://github.com/theZiz/puzzletube Puzzletube] or [https://github.com/theZiz/Sparrow-C4A-Manager SparrowC4AManager] to get more examples of how to use libsparrowNet.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Have a look at [https://github.com/theZiz/snowman Snowman], [https://github.com/theZiz/puzzletube Puzzletube] or [https://github.com/theZiz/Sparrow-C4A-Manager SparrowC4AManager] to get more examples of how to use libsparrowNet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Fusilli client =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Analog to the spaghetti client of Skeezix, Ziz made a fusilli client based on libsparrowNet, but staticly linked. So like the spaghetti client only one single file is needed. This approach is much easier than the library, but still has the advantage of running on many platform.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://github.com/theZiz/fusilli-client Here you find the code and in the build folder prebuilt binaries for many systems, even PC.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ziz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29668&amp;oldid=prev</id>
		<title>Ziz: Added how to get sparrow3d, added more examples</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29668&amp;oldid=prev"/>
		<updated>2014-04-26T12:22:48Z</updated>

		<summary type="html">&lt;p&gt;Added how to get sparrow3d, added more examples&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:22, 26 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot; &gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* You needed skeezix Manager to create, edit or delete accounts.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* You needed skeezix Manager to create, edit or delete accounts.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So Ziz started to reimplement the behaviour of the spaghetti client and the account management in his sparrowNet lib, which is in fact a part of sparrow3D, but doesn't need the (big) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;libSparrow3D&lt;/del&gt;.so file. Furthermore he encapsulated the HTTP magic to practical functions you just have to call. All the functions are threaded and most of them can be used parallel, e.g. loading three highscore at one time. Loading scores may need some time and parallizing stuff really helps here.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So Ziz started to reimplement the behaviour of the spaghetti client and the account management in his sparrowNet lib, which is in fact a part of sparrow3D, but doesn't need the (big) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;libsparrow3D&lt;/ins&gt;.so file. Furthermore he encapsulated the HTTP magic to practical functions you just have to call. All the functions are threaded and most of them can be used parallel, e.g. loading three highscore at one time. Loading scores may need some time and parallizing stuff really helps here.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A complete documentation can be found [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#Compo4all_stuff here]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A complete documentation can be found [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#Compo4all_stuff here]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Getting sparrow3D =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;You can get sparrow3D [https://github.com/theZiz/sparrow3d here]. Just clone it with&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  git clone https://github.com/theZiz/sparrow3d.git&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in a folder of your choice. The compilation should be quite easy, just have a look at the documented Makefile. On most linux system &amp;quot;make&amp;quot; or &amp;quot;make libsparrowNet.so&amp;quot; (for just the needed library) should work out of the box. pmprog created a VS Project file for Windows users, too. If you compile '''on''' the pandora, edit the targets/pandora.mk and change the compiler pathes. Otherwise the library will introduce itself to skeezix server as PC instead as Pandora.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Afterwards (doesn't matter, whether on PC or Pandora) type &amp;quot;make TARGET=pandora&amp;quot; to compile the library for the pandora.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Now you just have to include &amp;quot;sparrowNet.h&amp;quot; and to link against libsparrowNet.so or libsparrowNet.dll (Windows) and it should work. For help or problems feel free to make a new thread on the open pandora board in the developers section or to ask Ziz in #openpandora in the FreeNode IRC network.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The basic system =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The basic system =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot; &gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 138:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   spQuitNet();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   spQuitNet();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Have a look at [https://github.com/theZiz/snowman Snowman], [https://github.com/theZiz/puzzletube Puzzletube] or [https://github.com/theZiz/Sparrow-C4A-Manager SparrowC4AManager] to get more examples of how to use libsparrowNet.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ziz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29667&amp;oldid=prev</id>
		<title>Ziz: /* The basic system */ typo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29667&amp;oldid=prev"/>
		<updated>2014-04-26T12:05:46Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The basic system: &lt;/span&gt; typo&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:05, 26 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot; &gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SP_C4A_ERROR means, that the last process exited with errors.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SP_C4A_ERROR means, that the last process exited with errors.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every task is started with a time out. After this time the task is canceled. However you can cancel the task on yourself of course, too, e.g. if the user don't want to wait anymore. Use http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ACancelTask spNetC4ACancelTask] for this. You get the remaining time until the time out with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetTimeOut spNetC4AGetTimeOut].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every task is started with a time out. After this time the task is canceled. However you can cancel the task on yourself of course, too, e.g. if the user don't want to wait anymore. Use &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/ins&gt;http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ACancelTask spNetC4ACancelTask] for this. You get the remaining time until the time out with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetTimeOut spNetC4AGetTimeOut].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The functions =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The functions =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ziz</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29666&amp;oldid=prev</id>
		<title>Ziz: Created the page.</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Using_C4A_with_libSparrowNet&amp;diff=29666&amp;oldid=prev"/>
		<updated>2014-04-26T12:05:09Z</updated>

		<summary type="html">&lt;p&gt;Created the page.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Features of libSparrowNet =&lt;br /&gt;
&lt;br /&gt;
Skeezix created a quite neat score submit system with his Compo4all. Unfortunately his client implementation has some disadvantages.&lt;br /&gt;
* You have to use the spaghetti client, which is small and practical, but only exists for the pandora officially.&lt;br /&gt;
* For loading game lists, high scores and similar you always need to do HTTP magic on your own.&lt;br /&gt;
* You needed skeezix Manager to create, edit or delete accounts.&lt;br /&gt;
&lt;br /&gt;
So Ziz started to reimplement the behaviour of the spaghetti client and the account management in his sparrowNet lib, which is in fact a part of sparrow3D, but doesn't need the (big) libSparrow3D.so file. Furthermore he encapsulated the HTTP magic to practical functions you just have to call. All the functions are threaded and most of them can be used parallel, e.g. loading three highscore at one time. Loading scores may need some time and parallizing stuff really helps here.&lt;br /&gt;
&lt;br /&gt;
A complete documentation can be found [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#Compo4all_stuff here]&lt;br /&gt;
&lt;br /&gt;
= The basic system =&lt;br /&gt;
&lt;br /&gt;
This article will not explain the possibilities of the whole libSparrowNet here. However as the C4A part uses it, you have to init it at begin with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spInitNet spInitNet] and to quit it at program termination with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spQuitNet spQuitNet].&lt;br /&gt;
&lt;br /&gt;
The idea is, that every task is done in the background and you can get informations about the progress and the time left until timeout to show it to the user. If you e.g. commit a score you can do it in the background and the player can continue playing the next game to get an even higher score.&lt;br /&gt;
&lt;br /&gt;
Let's assume you just started a task. It doesn't matter, whether you want to get the list of games, scores of a specific game, submit a score for a game or even edit the accont: Every task uses the same background thread structure. Most of the times you have two methods to call the functions, e.g. [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetGame spNetC4AGetGame] and [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetGameParallel spNetC4AGetGameParallel]. Only one function of the first kind can run at one time. This is easy, but as you see, you can't run two task (e.g. getting high scores of different games) at ones. For this you can use the ...Parallel functions. However these return a handle you have to keep and to free with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ADeleteTask spNetC4ADeleteTask] if you are done. This article will not explain this in detail here, but the documentation should explain it quite well. Everything explained here works also for the ...Parallel functions, just keep in mind to add &amp;quot;Parallel&amp;quot; to the function and to keep and free the task handle.&lt;br /&gt;
&lt;br /&gt;
With [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetStatus spNetC4AGetStatus] you can get the status of the running process.&lt;br /&gt;
* SP_C4A_PROGRESS means a process is running right now. This also means, that no other process can be started (except with the ...Parallel functions)&lt;br /&gt;
* SP_C4A_OK means, that the last process exited without errors. Get the result with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetTaskResult spNetC4AGetTaskResult]. Even if everything went well, that doesn't mean, that your task was fulfilled! So don't forget to check afterwards.&lt;br /&gt;
* SP_C4A_ERROR means, that the last process exited with errors.&lt;br /&gt;
&lt;br /&gt;
Every task is started with a time out. After this time the task is canceled. However you can cancel the task on yourself of course, too, e.g. if the user don't want to wait anymore. Use http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ACancelTask spNetC4ACancelTask] for this. You get the remaining time until the time out with [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetTimeOut spNetC4AGetTimeOut].&lt;br /&gt;
&lt;br /&gt;
= The functions =&lt;br /&gt;
&lt;br /&gt;
The functions you can call are:&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetProfile spNetC4AGetProfile]&lt;br /&gt;
: This function does not work parallel. It just loads the profile if it exists (!) for later use. You need such a profile! If the loading fails, you have to create an account or tell the user to do so with one of the compo4all managers.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AFreeProfile spNetC4AFreeProfile]&lt;br /&gt;
: Frees the profile. In memory. It doesn't delete it, just frees the pointer. ;)&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetGame spNetC4AGetGame]&lt;br /&gt;
: Fills a list of all available games on skeezix c4a server.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ADeleteGame spNetC4ADeleteGame]&lt;br /&gt;
: Deletes the list created with the function above. It doesn't delete anything on skeezix server. ;)&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetScore spNetC4AGetScore] and [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AGetScoreOfMonth spNetC4AGetScoreOfMonth]&lt;br /&gt;
: Load the scores of a game on skeezix server. The second function loads only scores of a specific month.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ADeleteScore spNetC4ADeleteScores]&lt;br /&gt;
: Deletes the list created with the functions above.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ACommitScore spNetC4ACommitScore]&lt;br /&gt;
: Commits a score. This is, what the spaghetti client would do. The platform identifier (e.g. &amp;quot;pandora&amp;quot; for the Open Pandora or &amp;quot;gcw&amp;quot; for the GCW Zero) are set by libSparrowNet automaticly. If you add a highscore list to the call, it will check, whether the user already submitted this score. This is practical, if you didn't have a connection at the last submit attempt. So the easist way is to save every highscore local, to get the available highscore from skeezix server and to commit everything you have - libSparrowNet will not commit scores twice.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ACreateProfile spNetC4ACreateProfile]&lt;br /&gt;
: Creates a new profile locally and on skeezix server. The local c4a-prof file will be on different locations depending on the target system.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ADeleteAccount spNetC4ADeleteAccount]&lt;br /&gt;
: Really deletes your c4a-prof file and the account on skeezix server. This CAN'T be undone easily (in fact if you edit the account again with the same unique ID, although it was deleted, it is restored, but for this you need a backup of your c4a-prof file or at least the unique id). So be careful with this function.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4AEditProfile spNetC4AEditProfile]&lt;br /&gt;
: Edits a given profile. As the unique id stays, this changes the short and long username in every score submitted with this account.&lt;br /&gt;
* [http://ziz.gp2x.de/documentation/files/sparrowNet-h.html#spNetC4ADeleteProfileFile spNetC4ADeleteProfileFile]&lt;br /&gt;
: Deletes the profile file on the system, but not in skeezix server.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
This small example will load a profile, load the scores of a game and if a profile was loaded correctly commit a score (if this isn't in the list loaded before and commited already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
  spInitNet();&lt;br /&gt;
  &lt;br /&gt;
  //Getting the profile&lt;br /&gt;
  spNetC4AProfilePointer profile = spNetC4AGetProfile();&lt;br /&gt;
  if (profile) //Did it work?&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;Your profile:\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Long Name: %s\n&amp;quot;,profile-&amp;gt;longname);&lt;br /&gt;
    printf(&amp;quot;Short Name: %s\n&amp;quot;,profile-&amp;gt;shortname);&lt;br /&gt;
    printf(&amp;quot;E-Mail: %s\n&amp;quot;,profile-&amp;gt;email);&lt;br /&gt;
    printf(&amp;quot;Password: %s\n&amp;quot;,profile-&amp;gt;password);&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    printf(&amp;quot;No profile found. Put it to this folder or create it with compo4all!\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  //Loading the scores of game_name. If the profile was loaded only&lt;br /&gt;
  //the scores of this user will be added to the list.&lt;br /&gt;
  spNetC4AScorePointer score;&lt;br /&gt;
  spNetC4AGetScore(&amp;amp;score,profile,&amp;quot;game_name&amp;quot;,10000); //10000 ms timeout&lt;br /&gt;
  //The task is running now, we could do other things and show the timeout counter.&lt;br /&gt;
  //But we will just wait:&lt;br /&gt;
  while (spNetC4AGetStatus() == SP_C4A_PROGRESS)&lt;br /&gt;
    //sparrow3D has a function for this, but I don't want to use this bloated lib here.&lt;br /&gt;
    //Furthermore in your game you probably not just cycle without doing anything.&lt;br /&gt;
    #ifdef WIN32&lt;br /&gt;
      Sleep(1);&lt;br /&gt;
    #else&lt;br /&gt;
      usleep(200);&lt;br /&gt;
    #endif&lt;br /&gt;
  if (spNetC4AGetStatus() == SP_C4A_OK)&lt;br /&gt;
  {&lt;br /&gt;
    //Everything went fine, let's print the high score&lt;br /&gt;
    spNetC4AScorePointer mom = score;&lt;br /&gt;
    while (mom)&lt;br /&gt;
    {&lt;br /&gt;
      //the time are the ms since 1.1.1970, so we need to convert it.&lt;br /&gt;
      struct tm * local = localtime (&amp;amp;(mom-&amp;gt;commitTime));&lt;br /&gt;
      printf(&amp;quot; %2i.%2i.%i - %2i:%02i: %s (%s) - %i\n&amp;quot;,&lt;br /&gt;
        local-&amp;gt;tm_mday,local-&amp;gt;tm_mon+1,local-&amp;gt;tm_year+1900,&lt;br /&gt;
        local-&amp;gt;tm_hour,local-&amp;gt;tm_min,mom-&amp;gt;longname,mom-&amp;gt;shortname,mom-&amp;gt;score);&lt;br /&gt;
      mom = mom-&amp;gt;next;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    printf(&amp;quot;Fetshing Highscore failed with status code: %i\n&amp;quot;,spNetC4AGetStatus());&lt;br /&gt;
  &lt;br /&gt;
  //If we have a profile let's submit something&lt;br /&gt;
  if (profile)&lt;br /&gt;
  {&lt;br /&gt;
    //Please don't do this for real games, this will really submit scores to the game&lt;br /&gt;
    if (spNetC4ACommitScore(profile,&amp;quot;game_name&amp;quot;,10000,&amp;amp;score))&lt;br /&gt;
      printf(&amp;quot;Submit failed. Probably is the score already in the high score\n&amp;quot;);&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      while (spNetC4AGetStatus() == SP_C4A_PROGRESS)&lt;br /&gt;
      #ifdef WIN32&lt;br /&gt;
        Sleep(1);&lt;br /&gt;
      #else&lt;br /&gt;
        usleep(200);&lt;br /&gt;
      #endif&lt;br /&gt;
      if (spNetC4AGetStatus() == SP_C4A_OK)&lt;br /&gt;
        printf(&amp;quot;Submit succeded\n&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        printf(&amp;quot;Submit failed with status code: %i\n&amp;quot;,spNetC4AGetStatus());&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  //Winter wrap up:&lt;br /&gt;
  if (score)&lt;br /&gt;
    spNetC4ADeleteScores(&amp;amp;score);&lt;br /&gt;
  if (profile)&lt;br /&gt;
    spNetC4AFreeProfile(profile);&lt;br /&gt;
  spQuitNet();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ziz</name></author>
		
	</entry>
</feed>