int main(const std::vector<std::string>& args) { if (!_helpRequested) { Poco::Path outputDir; if (!args.empty()) outputDir.parseDirectory(args[0]); std::ifstream in(_zipFile.c_str(), std::ios::binary); Poco::Zip::Decompress c(in, outputDir); DecompressHandler handler; c.EError += Poco::Delegate<DecompressHandler, std::pair<const ZipLocalFileHeader, const std::string> >(&handler, &DecompressHandler::onError); c.EOk +=Poco::Delegate<DecompressHandler, std::pair<const ZipLocalFileHeader, const Poco::Path> >(&handler, &DecompressHandler::onOk); c.decompressAllFiles(); c.EError -= Poco::Delegate<DecompressHandler, std::pair<const ZipLocalFileHeader, const std::string> >(&handler, &DecompressHandler::onError); c.EOk -=Poco::Delegate<DecompressHandler, std::pair<const ZipLocalFileHeader, const Poco::Path> >(&handler, &DecompressHandler::onOk); } return Application::EXIT_OK; }