From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,913ffb3586d7a026,start X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!s9g2000yqm.googlegroups.com!not-for-mail From: Shark8 Newsgroups: comp.lang.ada Subject: What is the best method for transmitting objects/tagged records? Date: Mon, 6 Jun 2011 17:26:50 -0700 (PDT) Organization: http://groups.google.com Message-ID: NNTP-Posting-Host: 24.230.151.194 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1307406410 15760 127.0.0.1 (7 Jun 2011 00:26:50 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 7 Jun 2011 00:26:50 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: s9g2000yqm.googlegroups.com; posting-host=24.230.151.194; posting-account=lJ3JNwoAAAAQfH3VV9vttJLkThaxtTfC User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HUALESNKRC X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1,gzip(gfe) Xref: g2news2.google.com comp.lang.ada:20628 Date: 2011-06-06T17:26:50-07:00 List-Id: I've been stumped for a while trying to consider how to use Streams and the Distributed Systems Annex (Annex E) together for a parser; such that a [possibly] remote task can take a stream (parsing text to tokens could be done on either the client or host-systems and that division still suffers from this problem) and generate an object from it. I'd originally had something like this: - Entry: Read String - Entry: Write Object But this doesn't work for a class-wide object. As the only way to get an object from a task is via an out parameter (meaning we cannot use it as an initialization to some class-wide variable); we cannot safely over-write an existing object of some similar class because we may be passing out an extended object (which can only be bigger) which would stamp on the adjacent memory. So, Dimitry kindly pointed me to the correct way of doing so: - Entry: Read String - Entry: Write Tag - Entry: Write Object over a class-wide variable which had been initialized to the correct type via the dispatching constructor. But the package Ada.Tags is of the wrong type/level to be included in a remote_types or remote_interface package, so I cannot use that method. How would you go about transmitting tagged records across partitions (with the intent that these partitions should be easily separable for distribution at a later date)? OR Should I just rewrite my package-hierarchy keeping in mind the Remote_interface/Remote_Types/etc pragma restrictions? Further, I concede that perhaps this is the wrong area to try to self- teach (distributed computing) so any pointers to tutorials for using the DSA would be welcome.