[Biophp-dev] Pdraw filetype parser updated

Nico Stuurman biophp-dev@bioinformatics.org
Thu, 8 May 2003 09:36:54 -0700


>> I guess that when the parser opens the stream, it should also close it
>> again.  However,when an application opens a stream, I guess the
>> application should open it.  That leaves a problem with our Parser 
>> class
>> opening streams...  Ideas?
>
> Well, the "most polite" way of handling it would be to have the layer
> that did the opening do the closing (if an application opens a stream
> and passes it to the Parse (or Import or whatever it ends up being 
> named)
> object, it ought to be left open for the application to close.  If
> a filename gets passed to the parse object to open, the parse object
> should close it...
>
> On the other hand, that adds (slightly) to the necessary complexity 
> (Parse
> object has to remember later whether it was passed an already-open 
> handle or
> just a filename [or just text]).
> If we WANTED to, it would probably be realistically reasonable to 
> simply
> have the Parse layer or even the individual filetype parsers close
> the filehandle when they get to the end.  Kind of a toss-up, really.
>
> Probably the former option is the "better" one, if we want to deal with
> it immediately.  (If we adopt that, we'll want to do the same with the
> filetype parsers, for the case where someone passes an filename/URL and
> specifies the filetype...)


Agreed.  Let's every layer that opens one also close it when it 
(thinks) it is done with it.


Nico