Folks,

  I'd like to make a POE process that archives/unarchives files
of popular formats mixes (tar bzip, tar gzip, tar) and I have a
difficulty at making a design decision.

  For now I see that there are:

   1) POE::Filter::Bzip2 (and the gzip counterpart)

   2) POE:Session using Compress::Bzip2, 
      Compress::Zlib and Archive::Tar::Streamed

   3) POE child process simply calling bzip2 from the system

   4) POE:Session using Michael Schilli's Archive::Tar::Wrapper

  Here are my thoughts:

  Solution 4: Archive::Tar::Wrapper itself uses IPC::Run to
execute tar, gather output, etc...  I'm a bit hesitant to wrap
this in a POE:Session as I fear this could be overkill when I
could use (with more work) solution 3 and build my own interface
to the system's tar (and bzip2, gzip) utilities.

  Solution 2 could be interesting in that most of the utilities
provided for each kind of archive would already been written.
It'd then be a matter for the POE::Session to go along one of the
Child Processes from the Cookbook, receiving archive commands
from other POE Sessions and scheduling the appropriate child
processes to run.

  For solution 1, I do not see any advantage of using a POE-based
interface when quite probably I'll be making one anyways.

  Is any one of the solutions above hindering 'system flow' more
than another ?  I mean, would one block the cooperative
multitasking that POE uses to the point of rendering the system
irresponsive when dealing with large archives ?

  Or maybe you have a better idea ! ;-)

Cheers,
Al

Reply via email to