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=unavailable autolearn_force=no version=3.4.4 Path: border1.nntp.dca1.giganews.com!nntp.giganews.com!newspeer1.nac.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!news.stack.nl!aioe.org!.POSTED!not-for-mail From: Victor Porton Newsgroups: comp.lang.ada Subject: Re: On packages hierarchy Date: Mon, 28 Jul 2014 19:35:12 +0300 Organization: Aioe.org NNTP Server Message-ID: References: <4vuBv.121143$pu5.79212@fx27.iad> NNTP-Posting-Host: rFX7cZOSaeuGGZI2vwQTaQ.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@aioe.org User-Agent: KNode/4.12.4 X-Notice: Filtered by postfilter v. 0.8.2 Xref: number.nntp.dca.giganews.com comp.lang.ada:187963 Date: 2014-07-28T19:35:12+03:00 List-Id: Shark8 wrote: > On 28-Jul-14 07:41, Victor Porton wrote: >> I am going to create the package RDF.Raptor.Iostream which would be Ada >> bindings around >> http://librdf.org/raptor/api/raptor2-section-iostream.html >> >> Afterward, I am going to create Ada IO stream (derived from >> Root_Stream_Type) which encaspulates (wraps) RDF.Raptor.Iostream and >> reversely RDF.Raptor.Iostream which encaspulates (wraps) >> Root_Stream_Type. >> >> Should packages which wrap each other be in child packages of >> RDF.Raptor.Iostream? I think no, because they do not require access to >> internals (private part) of RDF.Raptor.Iostream but child packages have >> access to private parts. >> >> So, should they be siblings, like RDF.Raptor.Iostream_To_Ada and >> RDF.Raptor.Iostream_From_Ada? (Also please help to conceive good names >> for these packages.) >> > > Er, why? > >> Streams are a method to read or write any object to any medium, >> and thus they are doubly generalized. This also means that you >> are bounded by the most restrictive set of operations common to >> all mediums. As an example, you cannot provide position control >> in a general manner because not all transmission modes are >> random-access (like receiving a radio-signal), and not all >> streams are bi-directional (like a light-sensor). > > Why not just have a single stream type? I want to make an interface to streams of Raptor C library. Because, as you say, we are to have a single stream type, this type should be well-interfaces with that "single" Ada stream class. > Moreover, Ada's root-stream is abstract, so you can't have objects of > that type. Well, I mean object of Root_Stream_Type'Class. -- Victor Porton - http://portonvictor.org