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=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ed1009970959aab0 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-11-30 21:31:32 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!c03.atl99!chi1.webusenet.com!news.webusenet.com!newsfeed-east.nntpserver.com!nntpserver.com!border1.nntp.ash.giganews.com!firehose2!nntp4!intern1.nntp.aus1.giganews.com!nntp.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Sun, 30 Nov 2003 23:31:30 -0600 Date: Mon, 01 Dec 2003 00:31:29 -0500 From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Help with a Remote Type / Iterator References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 24.34.214.193 X-Trace: sv3-kRqW4lVTOP7Ka/F+Nm7HBPElzaj9ity/E1r2HaJnv3Zh2wNbo6Aq7w413nfTsV6cAcnyc8dJnLt3DBJ!czmXc00igJAXuMl/9QX6FMA1g8/hs4ThMUPliZJ4YaNtpg/Bk52IRMtXHp5E/A== X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 Xref: archiver1.google.com comp.lang.ada:3044 Date: 2003-12-01T00:31:29-05:00 List-Id: Michael Lamarre wrote: > I have a record type I've defined in package A. In package A.CHILD, I > want to define a type that is a collection of these records. For > stylistic reasons, we'd rather declare all of the types in the spec and > not have any incomplete type declarations in the spec. Both A and > A.CHILD are REMOTE_TYPES (RT) packages. > > What we need is some kind of iterator for the collection type declared > in A.CHILD. We've tried a passive iterator, but some of the stuff we > need to do while iterating just won't work given that the passive > iterator needs to take an access-to-subprogram parameter, which, in a RT > package must be a remote subprogram. We need the flexibility of an > active iterator. This is not necessarily a solution, just trying to understand what you are doing.... Do you really require that your iterator run on processor A, accessing objects from processor B? If so it can be done. But as you sort of point out, the problem is that you are trying to cram everything into one package. If you really need the data transfered from processor to processor, you will need to provide 'Read and 'Write. These can be defined in terms of the subcomponents for the actual type, see the Rationale, I think for details. But I really suspect that you are confusing (in the other meaning of confusing--mixing them together) two different things, a type which is a remote type, and a local iterator over collections of objects of the type. If the collections are distributed, you have a big design job just defining what iteration means. (Do you want to iterate over a snapshot of the container state, iterate over all the objects in a particular partition, then do the next partition, iterate over all partitions in parallel, or is there other implicit order of iteration, etc.) -- Robert I. Eachus 100% Ada, no bugs--the only way to create software.