Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(734)

Unified Diff: utils/archive/reader.dart

Issue 12016011: Remove utils/archive. It is not used at this point. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/archive/reader.c ('k') | utils/archive/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/archive/reader.dart
diff --git a/utils/archive/reader.dart b/utils/archive/reader.dart
deleted file mode 100644
index f1bf6d553425d581771ad071908fe65b63289652..0000000000000000000000000000000000000000
--- a/utils/archive/reader.dart
+++ /dev/null
@@ -1,299 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library reader;
-
-import 'input_stream.dart';
-import 'options.dart';
-import 'read_request.dart';
-import 'utils.dart';
-
-/**
- * A class for extracting and decompressing an archive.
- *
- * Each instance of this class represents a specific set of options for
- * extracting an archive. These options can be used to create multiple input
- * streams using the [reader.ArchiveReader.openFilename] and
- * [reader.ArchiveReader.openMemory] methods.
- *
- * Before opening an archive, this needs to be configured. [filter] should be
- * used to enable specific decompression algorithms, and [format] should be used
- * to enable specific archive formats.
- */
-class ArchiveReader {
- /**
- * The configuration for the filter(s) to use when decompressing the contents
- * of an archive. The precise compression used is auto-detected from among all
- * enabled options.
- */
- final Filter filter;
-
- /**
- * The configuration for the archive format(s) to look for when extracting the
- * contents of an archive. The format used is auto-detected from among all
- * enabled options.
- */
- final Format format;
-
- /**
- * Options for both [filter] and [format]. See [the libarchive
- * documentation][wiki] for a list of available options.
- *
- * [wiki]: https://github.com/libarchive/libarchive/wiki/ManPageArchiveReadSetOptions3
- */
- final ArchiveOptions options;
-
- /** Creates a new, unconfigured archive reader. */
- ArchiveReader() : filter = new Filter._(),
- format = new Format._(),
- options = new ArchiveOptions();
-
- /**
- * Begins extracting from [file].
- *
- * [block_size] only needs to be specified for reading from devices that
- * require strict I/O blocking.
- */
- Future<ArchiveInputStream> openFilename(String file, [int block_size=16384]) {
- var id;
- return _createArchive().then((_id) {
- id = _id;
- return call(OPEN_FILENAME, id, [file, block_size]);
- }).then((_) => new ArchiveInputStream(id));
- }
-
- /** Begins extracting from [data], which should be a list of bytes. */
- Future<ArchiveInputStream> openData(List<int> data) {
- var id;
- return _createArchive().then((_id) {
- id = _id;
- return call(OPEN_MEMORY, id, [bytesForC(data)]);
- }).then((_) => new ArchiveInputStream(id));
- }
-
- /**
- * Creates an archive struct, applies all the configuration options to it, and
- * returns its id.
- */
- Future<int> _createArchive() {
- return call(NEW).then((id) {
- if (id == 0 || id == null) {
- throw new ArchiveException("Archive is invalid or closed.");
- }
- return _pushConfiguration(id).then((_) => id);
- });
- }
-
- /**
- * Applies all configuration in this archive to the archive identified by
- * [id]. Returns a future that completes once all the configuration is
- * applied.
- */
- Future _pushConfiguration(int id) {
- var pending = <Future>[];
- if (filter.program != null) {
- if (filter.programSignature != null) {
- var signature = bytesForC(filter.programSignature);
- pending.add(call(SUPPORT_FILTER_PROGRAM_SIGNATURE, id,
- [filter.program, signature]));
- } else {
- pending.add(call(SUPPORT_FILTER_PROGRAM, id, [filter.program]));
- }
- } else if (filter.all) {
- pending.add(call(SUPPORT_FILTER_ALL, id));
- } else {
- if (filter.bzip2) pending.add(call(SUPPORT_FILTER_BZIP2, id));
- if (filter.compress) {
- pending.add(call(SUPPORT_FILTER_COMPRESS, id));
- }
- if (filter.gzip) pending.add(call(SUPPORT_FILTER_GZIP, id));
- if (filter.lzma) pending.add(call(SUPPORT_FILTER_LZMA, id));
- if (filter.xz) pending.add(call(SUPPORT_FILTER_XZ, id));
- }
-
- if (format.all) {
- pending.add(call(SUPPORT_FORMAT_ALL, id));
- } else {
- if (format.ar) pending.add(call(SUPPORT_FORMAT_AR, id));
- if (format.cpio) pending.add(call(SUPPORT_FORMAT_CPIO, id));
- if (format.empty) pending.add(call(SUPPORT_FORMAT_EMPTY, id));
- if (format.iso9660) pending.add(call(SUPPORT_FORMAT_ISO9660, id));
- if (format.mtree) pending.add(call(SUPPORT_FORMAT_MTREE, id));
- if (format.raw) pending.add(call(SUPPORT_FORMAT_RAW, id));
- if (format.tar) pending.add(call(SUPPORT_FORMAT_TAR, id));
- if (format.zip) pending.add(call(SUPPORT_FORMAT_ZIP, id));
- }
-
- void addOption(request, option) {
- var value;
- if (option.value == false || option.value == null) {
- value = null;
- } else if (option.value == true) {
- value = '1';
- } else {
- value = option.value.toString();
- }
-
- pending.add(CALL(request, id, [module, option.name, value]));
- };
-
- for (var option in filter.options.all) {
- addOption(SET_FILTER_OPTION, option);
- }
-
- for (var option in format.options.all) {
- addOption(SET_FORMAT_OPTION, option);
- }
-
- for (var option in options.all) {
- addOption(SET_OPTION, option);
- }
-
- return Future.wait(pending);
- }
-}
-
-/**
- * The configuration for the filter(s) to use when decompressing the contents
- * of an archive. The precise compression used is auto-detected from among all
- * enabled options.
- */
-class Filter {
- /**
- * Auto-detect among all possible filters. If this is set, all other filter
- * flags are ignored. [program] takes precedence over this.
- */
- bool all = false;
-
- /**
- * Enable [bzip2][wp] compression.
- *
- * [wp]: http://en.wikipedia.org/wiki/Bzip2
- */
- bool bzip2 = false;
-
- /**
- * Enable the compression used by [the `compress` utility][wp].
- *
- * [wp]: http://en.wikipedia.org/wiki/Compress
- */
- bool compress = false;
-
- /**
- * Enable [gzip][wp] compression.
- *
- * [wp]: http://en.wikipedia.org/wiki/Gzip
- */
- bool gzip = false;
-
- /**
- * Enable [lzma][wp] compression.
- *
- * [wp]: http://en.wikipedia.org/wiki/Lzma
- */
- bool lzma = false;
-
- /**
- * Enable [xz][wp] compression.
- *
- * [wp]: http://en.wikipedia.org/wiki/Xz
- */
- bool xz = false;
-
- /**
- * Compress using the command-line program `program`. If this is specified and
- * [programSignature] is not, all other filter flags are ignored. This takes
- * precedence over [all].
- */
- String program;
-
- // TODO(nweiz): allow multiple programs with signatures to be specified.
- /**
- * If set, `program` will be applied only to files whose initial bytes match
- * [programSignature].
- */
- List<int> programSignature;
-
- /**
- * Options for individual filters. See [the libarchive documentation][wiki]
- * for a list of available options.
- *
- * [wiki]: https://github.com/libarchive/libarchive/wiki/ManPageArchiveReadSetOptions3
- */
- final ArchiveOptions options;
-
- Filter._() : options = new ArchiveOptions();
-}
-
-/**
- * The configuration for the archive format(s) to look for when extracting the
- * contents of an archive. The format used is auto-detected from among all
- * enabled options.
- */
-class Format {
- /**
- * Auto-detect among all possible formats. If this is set, all other format
- * flags are ignored.
- */
- bool all = false;
-
- /**
- * Enable the [ar][wp] format.
- *
- * [wp]: http://en.wikipedia.org/wiki/Ar_(Unix)
- */
- bool ar = false;
-
- /**
- * Enable the [cpio][wp] format.
- *
- * [wp]: http://en.wikipedia.org/wiki/Cpio
- */
- bool cpio = false;
-
- /** Enable treating empty files as archives with no entries. */
- bool empty = false;
-
- /**
- * Enable the [ISO 9660][wp] format.
- *
- * [wp]: http://en.wikipedia.org/wiki/ISO_9660
- */
- bool iso9660 = false;
-
- /**
- * Enable the [mtree][wiki] format.
- *
- * [wiki]: https://github.com/libarchive/libarchive/wiki/ManPageMtree5
- */
- bool mtree = false;
-
- /** Enable treating unknown files as archives containing a single file. */
- bool raw = false;
-
- /**
- * Enable the [tar][wp] format.
- *
- * [wp]: http://en.wikipedia.org/wiki/Tar_(file_format)
- */
- bool tar = false;
-
- /**
- * Enable the [zip][wp] format.
- *
- * [wp]: http://en.wikipedia.org/wiki/ZIP_(file_format)
- */
- bool zip = false;
-
-
- /**
- * Options for individual formats. See [the libarchive documentation][wiki]
- * for a list of available options.
- *
- * [wiki]: https://github.com/libarchive/libarchive/wiki/ManPageArchiveReadSetOptions3
- */
- final ArchiveOptions options;
-
- Format._() : options = new ArchiveOptions();
-}
« no previous file with comments | « utils/archive/reader.c ('k') | utils/archive/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698