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.3 required=5.0 tests=BAYES_00,INVALID_MSGID, LOTS_OF_MONEY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,573be8c453ecbff4 X-Google-Attributes: gid103376,public From: "Pat Rogers" Subject: Re: 'Read for pointers Date: 2000/07/26 Message-ID: #1/1 X-Deja-AN: 651152968 References: <8lndgv$1om$1@nnrp1.deja.com> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 X-Complaints-To: abuseswbell.net X-Trace: nnrp3.sbc.net 964647889 208.191.184.67 (Wed, 26 Jul 2000 16:44:49 CDT) Organization: SBC Internet Services X-MSMail-Priority: Normal NNTP-Posting-Date: Wed, 26 Jul 2000 16:44:49 CDT Newsgroups: comp.lang.ada Date: 2000-07-26T00:00:00+00:00 List-Id: "Ted Dennison" wrote in message news:8lndgv$1om$1@nnrp1.deja.com... > I've seen it suggested in several places to handle Stream writing of > pointers by writing what the pointer points to instead. That's simple > enough. > > But say I want to make this automatic. Lets say I have a pointer type > declared thusly: > > package Example is > type Handle is private; > > ... > private > > type Instance; > > type Handle is access all Instance; > > end Example; > > The user doesn't even really know or care that Handle is really a > pointer. But they may need to do stream I/O with it. > > The obvious solution is to create my own 'Write and 'Read routines for > Handle. But there's a problem. Following is the profile for 'Read: > > procedure Read > (Stream : access Ada.Streams.Root_Stream_Type'Class; > Item : out Handle > ); > for Handle'Read use Read; > > The problem is that Item is an *out* parameter. That means I won't have > acces to the pointer's old value inside Read. There's no way I can put > the newly read data from the stream into the Instance that Handle > currently points to! Further to my previous post, to the effect that one can indeed read mode out parameters: the access value of the actual is copied into the formal, so you get a meaningful value coming in even though the mode is out. See RM 6.4.1{12,13} -- Pat Rogers Consulting and Training in: http://www.classwide.com Deadline Schedulability Analysis progers@classwide.com Software Fault Tolerance (281)648-3165 Real-Time/OO Languages Adam ... does not deserve all the credit; much is due to Eve, the first woman, and Satan, the first consultant. Mark Twain