<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[message und verschiedene payloads]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich stehe gerade mal wieder ein wenig auf der Leitung und hoffe, dass ihr mich in die richtige Richtung schieben könnte.</p>
<p>Ich habe eine Basisklasse für eine Payload, genannt PayloadBase. Diese wird durch ein Template erweitert zu Payloady&lt;T&gt;. Nun gibt es ganz viele Payloads, welche etwas sind wie:</p>
<pre><code>class EinePayload: public Payload&lt;int&gt;{}
</code></pre>
<p>oder</p>
<pre><code>class EineAnderePayload: public Payload&lt;bool&gt;{}
</code></pre>
<p>Nun will ich die Payloads in meine Nachricht packen, und habe es naiverweise so gemacht:</p>
<pre><code>class Nachricht{
private:
   PayloadBase * payload;

public:

  void setPayload(PayloadBase * sdu) {
    payload = sdu;
  }
</code></pre>
<p>Nun scheint aber auf der Empfängerseite nicht mehr wirklich was anzukommen, also nur noch so eine verstümmelte Payload, statt EinePayload o.ä. . Kann mir jemand nen Tipp geben, wie ich es richtig mache? Wäre cool.</p>
<p>Vielen Dank schon einmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328844/message-und-verschiedene-payloads</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 07:58:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328844.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Oct 2014 11:13:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 11:13:13 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich stehe gerade mal wieder ein wenig auf der Leitung und hoffe, dass ihr mich in die richtige Richtung schieben könnte.</p>
<p>Ich habe eine Basisklasse für eine Payload, genannt PayloadBase. Diese wird durch ein Template erweitert zu Payloady&lt;T&gt;. Nun gibt es ganz viele Payloads, welche etwas sind wie:</p>
<pre><code>class EinePayload: public Payload&lt;int&gt;{}
</code></pre>
<p>oder</p>
<pre><code>class EineAnderePayload: public Payload&lt;bool&gt;{}
</code></pre>
<p>Nun will ich die Payloads in meine Nachricht packen, und habe es naiverweise so gemacht:</p>
<pre><code>class Nachricht{
private:
   PayloadBase * payload;

public:

  void setPayload(PayloadBase * sdu) {
    payload = sdu;
  }
</code></pre>
<p>Nun scheint aber auf der Empfängerseite nicht mehr wirklich was anzukommen, also nur noch so eine verstümmelte Payload, statt EinePayload o.ä. . Kann mir jemand nen Tipp geben, wie ich es richtig mache? Wäre cool.</p>
<p>Vielen Dank schon einmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424649</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 11:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 11:27:54 GMT]]></title><description><![CDATA[<p>achso,</p>
<p>die Nachricht wird beim senden und empfangen automatisch serilisiert/deserialisiert. Das geht. Ich nehm einfach an, dass so wie ich die Payload an die Nachricht übergebe, ich das Objekt verstümmele. Wie mache ich es richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424651</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 11:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 11:31:47 GMT]]></title><description><![CDATA[<p>Was heisst Senden/Empfangen? Was/wie/wo/wohin (de-)serialisierst du?</p>
<p>Eine Objekthierarchie zu einem Bytehaufen oder einem String zu machen ist meistens recht einfach. Der umgekehrte Weg bedarf meistens einiger Tricks, damit du die richtigen Unterklassen zur richtigen Zeit wieder erzeugst und auch den Code sauber hälst.</p>
<p>Aber im Grund hast du uns kaum Informationen gegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424653</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 29 Oct 2014 11:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 11:33:19 GMT]]></title><description><![CDATA[<p>sven_ schrieb:</p>
<blockquote>
<p>Wie mache ich es richtig?</p>
</blockquote>
<p>Indem du es nicht mehr falsch machst. Da du nicht zeigst, was du machst, kann man nicht weiter helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424655</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 29 Oct 2014 11:33:19 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 11:54:01 GMT]]></title><description><![CDATA[<p>Schreib einfach irgendwo <code>virtual</code> dran, das wird schon helfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>ps<br />
<a href="http://www.c-plusplus.net/forum/200753" rel="nofollow">http://www.c-plusplus.net/forum/200753</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424666</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 29 Oct 2014 11:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 12:27:21 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Schreib einfach irgendwo <code>virtual</code> dran, das wird schon helfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>ps<br />
<a href="http://www.c-plusplus.net/forum/200753" rel="nofollow">http://www.c-plusplus.net/forum/200753</a></p>
</blockquote>
<p>= 0 ist auch zu empfehlen. Klingt ja irgendwie nach Slicing.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424671</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 29 Oct 2014 12:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 13:00:30 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>also aktuelle sende und empfange ich im Simulator, also es werden die C++-Objekte versendet und empfangen, wenns übers Netz geht, ist eine Serialisation vorhanden. Daher benötige ich halt &quot;nur&quot; eine &quot;Komposition&quot; von Nachricht und Payload. Hier mal ein wenig mehr Code:</p>
<pre><code>class JoinAnnounce : public MulticastPayload&lt;JoinAnnounce&gt; {
...
};

template&lt;typename MulticastPayloadType&gt;
class MulticastPayload : public MulticastPayloadBase {
...
};

class MulticastMessage: public Serializable {
        MulticastMessage::MulticastMessage(const MulticastPayloadBase &amp; sdu)
        :...., payload(sdu.dup()){ //dup() erzeugt eine Kopie der SDU
        }
protected:
  MulticastPayloadBase * payload;
};
</code></pre>
<p>Von den Schichten bekomme ich sowas wie nen JoinAnnounce, aktuell über folgenden Code:</p>
<pre><code>Transfer::sendMessage(const MulticastPayloadBase &amp; sdu) {

            MulticastMessage msg(sdu);
.....
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2424678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424678</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 13:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 13:03:37 GMT]]></title><description><![CDATA[<p>Ach so, dann ist es ganz klar:</p>
<p>........</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424679</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 29 Oct 2014 13:03:37 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 13:04:08 GMT]]></title><description><![CDATA[<p>Ich denke mal, mein MulticastPayloadBase * payload in der Klasse MulticastMessage ist falsch. Aber irgendwie steh ich auf dem Schlauch. Ich habe es schon mit:</p>
<pre><code>template&lt;typename T&gt;
MulticastPayload&lt;T&gt; * payload;
</code></pre>
<p>probiert, aber da kam ich leider auch nicht weiter. Wäre dies überhaupt nen Weg?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424681</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 13:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 13:07:15 GMT]]></title><description><![CDATA[<p>Achso,</p>
<p>und ich will quasi von einem Rechner zu einem anderen Senden, wobei Layer n eine Payload generiert und diese an Layer n-1 (Transfer) weiter gibt, wo sie in die Multicast Nachricht verpackt wird. Dort wird sie versendet, und auf der Gegenseite von n-1 angenommen und die Payload an Layer n ausgeliefert. Aber ich packe sie wohl schon falsch im Transfer (Layer n-1) zusammen.</p>
<p>Nun besser verständlich? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424683</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 13:07:15 GMT</pubDate></item><item><title><![CDATA[Reply to message und verschiedene payloads on Wed, 29 Oct 2014 13:10:56 GMT]]></title><description><![CDATA[<p>Wenn ich folgendes Probiere in Layer n-1:</p>
<pre><code>Transfer::sendMessage(const MulticastPayloadBase &amp; sdu) { 
std::cout&lt;&lt; sdu &lt;&lt;&quot;\n&quot;; //geht, ergibt Type JoinAnnounce
             MulticastMessage msg(sdu); 
std::cout&lt;&lt; msg.getPayload()&lt;&lt;&quot;\n&quot;; //geht schon nicht
}
</code></pre>
<p>Kommt statt einer Ausgabe wie in der ersten Zeile halt nur ein Segfault.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2424686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2424686</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 29 Oct 2014 13:10:56 GMT</pubDate></item></channel></rss>