Hello all.
I am trying to create a wrapper for a set of resources (mixed text,
image, etc files) for use in an SDL-based application.
I want to use iostreams and keep it as close to C++ as I can, but SDL
uses some functions that load data from c-type file pointers or a
location in memory using a void* and byte-count.
Is it possible to define a method of file access using iostreams and a
filter that will then let me create sub-streams of the data inside??
For instance - a zlib-compressed file called 'foobar.gz' that contains
'foo.txt' and 'bar.png'.
I want to attach an iostream to foobar.gz then use functions to get
the contents in different formats, e.g.
stream compressed_file( "foobar.gz" );
ifstream foo = compressed_file.getasfilestream( "foo.txt" );
// read stuff from foo
foo.close();
char* img_data;
unsigned long size;
compressed_file.getasmembuffer( img_data, &size );
// read img_data and poke around with it
delete[] img_data;
I know the above is just for illustration, but I can't find any libs
that do this sort of work. I am having some real problems now even at
the design stage, for instance how to neatly pack multiple files into
a single one. My packed-file headers always seem to go wrong and
without fixed-length space for files names it gets even more painful :-)
If this isn't the right place for this sort of question (I see it's
far more conceptual than directly boost-related) then I apologise and
will start hitting on some more generic forums and lists ;-)
Thanks for your time,
GT