D
Derek
Greetings,
I'm trying to create a generic multi-purpose istream class that is
capable of working in different ways based on different file paths.
For example, say an istream-based class that can take a URL as an open
() parameter, and then use a filebuf to open a "file://" path, a
socketbuf to open an "http://" or "telnet://" path, and an ftpbuf to
open an "ftp://" path.
I already have some existing working specific purpose istream-based
classes, but I cannot seem to find a way to build a generic one that
can then interface with one of the existing ones based upon the open
path/url.
Part of the problem I am having is that an istream class must contain
a streambuf that is initialized with the constructor, but I cannot
seem to figure out how to build an istream class that contains (or can
contain) multiple different types of streambufs, and be able to switch
between them, but perhaps this is the wrong approach.
Is there a way to make this work without having to cannibalize all the
existing istream-based classes?
Thanks
I'm trying to create a generic multi-purpose istream class that is
capable of working in different ways based on different file paths.
For example, say an istream-based class that can take a URL as an open
() parameter, and then use a filebuf to open a "file://" path, a
socketbuf to open an "http://" or "telnet://" path, and an ftpbuf to
open an "ftp://" path.
I already have some existing working specific purpose istream-based
classes, but I cannot seem to find a way to build a generic one that
can then interface with one of the existing ones based upon the open
path/url.
Part of the problem I am having is that an istream class must contain
a streambuf that is initialized with the constructor, but I cannot
seem to figure out how to build an istream class that contains (or can
contain) multiple different types of streambufs, and be able to switch
between them, but perhaps this is the wrong approach.
Is there a way to make this work without having to cannibalize all the
existing istream-based classes?
Thanks