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

Unified Diff: utils/archive/entry.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/entry.c ('k') | utils/archive/entry_request.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/archive/entry.dart
diff --git a/utils/archive/entry.dart b/utils/archive/entry.dart
deleted file mode 100644
index f851959d6158d15ed8d22ab24db6311d0ee50c78..0000000000000000000000000000000000000000
--- a/utils/archive/entry.dart
+++ /dev/null
@@ -1,337 +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 entry;
-
-import 'dart:io';
-import 'archive.dart' as archive;
-import 'entry_request.dart';
-import 'read_request.dart' as read;
-import 'utils.dart';
-
-/**
- * A single file in an archive.
- *
- * This is accessible via [ArchiveInputStream.onEntry].
- */
-class ArchiveEntry {
- /**
- * The various properties of this archive entry, as sent over from the C
- * extension.
- */
- final List _properties;
-
- /**
- * The id of the archive to which this entry belongs. Used to read the entry
- * data. This will be set to null once there's no longer data available to be
- * read for this entry.
- */
- int _archiveId;
-
- /**
- * The input stream being used to read data from this entry. This is null
- * until [openInputStream] is called.
- */
- InputStream _input;
-
- // TODO(nweiz): Get rid of this once issue 4202 is fixed.
- /**
- * A future that only exists once [openInputStream] is called, and completes
- * once the input stream is closed.
- *
- * For internal use only.
- */
- Future inputComplete;
-
- ArchiveEntry.internal(this._properties, this._archiveId) {
- attachFinalizer(this, (id) => call(FREE, id), _id);
- }
-
- /** Create a new [ArchiveEntry] with default values for all of its fields. */
- static Future<ArchiveEntry> create() {
- return call(NEW).then((properties) {
- return new archive.ArchiveEntry.internal(properties, null);
- });
- }
-
- /** The id of the underlying archive entry. */
- int get _id => _properties[0];
-
- /** If this entry is a hardlink, this is the destination. Otherwise, null. */
- String get hardlink => _properties[1];
- set hardlink(String value) => _set(SET_HARDLINK, 1, value);
-
- /** The path to this entry in the archive. */
- String get pathname => _properties[2];
- set pathname(String value) => _set(SET_PATHNAME, 2, value);
-
- /** The path to this entry on disk, */
- String get sourcepath => _properties[3];
-
- /** If this entry is a symlink, this is the destination. Otherwise, null. */
- String get symlink => _properties[4];
- set symlink(String value) => _set(SET_SYMLINK, 4, value);
-
- /** The group identifier for this entry. */
- int get gid => _properties[5];
- set gid(int value) => _set(SET_GID, 5, value);
-
- /** The user identifier for this entry. */
- int get uid => _properties[6];
- set uid(int value) => _set(SET_UID, 6, value);
-
- /** The permissions bitmask for this entry. */
- int get perm_mask => _properties[7];
- set perm_mask(int value) => _set(SET_PERM, 7, value);
-
- /**
- * The String representation of the permissions for this entry.
- *
- * Note that if you set [perm_mask], this value will not change.
- */
- String get strmode => _properties[8];
-
- /** The name of the group this entry belongs to. */
- String get gname => _properties[9];
- set gname(String value) => _set(SET_GNAME, 9, value);
-
- /** The name of the user this entry belongs to. */
- String get uname => _properties[10];
- set uname(String value) => _set(SET_UNAME, 10, value);
-
- /**
- * The file flag bits that should be set for this entry.
- *
- * Note that if you set [fflags_text], this value will not change, and vice
- * versa.
- */
- int get fflags_set => _properties[11];
- set fflags_set(int value) => _set(SET_FFLAGS_SET, 11, value);
-
- /**
- * The file flag bits that should be cleared for this entry.
- *
- * Note that if you set [fflags_text], this value will not change, and vice
- * versa.
- */
- int get fflags_clear => _properties[12];
- set fflags_clear(int value) => _set(SET_FFLAGS_CLEAR, 12, value);
-
- /**
- * The textual representation of the file flags for this entry.
- *
- * Note that if you set [fflags_set] or [fflags_clear], this value will not
- * change, and vice versa.
- */
- String get fflags_text => _properties[13];
-
- /** The filetype bitmask for this entry. */
- int get filetype_mask => _properties[14];
- set filetype_mask(int value) => _set(SET_FILETYPE, 14, value);
-
- /** The filetype and permissions bitmask for this entry. */
- int get mode_mask => _properties[15];
- set mode_mask(int value) => _set(SET_MODE, 15, value);
-
- /** The size of this entry in bytes, or null if it's unset. */
- int get size => _properties[16];
- set size(int value) => _set(SET_SIZE, 16, value);
-
- /** The ID of the device containing this entry, or null if it's unset. */
- int get dev => _properties[17];
- set dev(int value) => _set(SET_DEV, 17, value);
-
- /** The major number of the ID of the device containing this entry. */
- int get devmajor => _properties[18];
- set devmajor(int value) => _set(SET_DEVMAJOR, 18, value);
-
- /** The minor number of the ID of the device containing this entry. */
- int get devminor => _properties[19];
- set devminor(int value) => _set(SET_DEVMINOR, 19, value);
-
- /** The inode number of this entry, or null if it's unset. */
- int get ino => _properties[20];
- set ino(int value) => _set(SET_INO, 20, value);
-
- /** The number of references to this entry. */
- int get nlink => _properties[21];
- set nlink(int value) => _set(SET_NLINK, 21, value);
-
- /** The device ID of this entry. */
- int get rdev => _properties[22];
- set rdev(int value) => _set(SET_RDEV, 22, value);
-
- /** The major number of the device ID of this entry. */
- int get rdevmajor => _properties[23];
- set rdevmajor(int value) => _set(SET_RDEVMAJOR, 23, value);
-
- /** The minor number of the device ID of this entry. */
- int get rdevminor => _properties[24];
- set rdevminor(int value) => _set(SET_RDEVMINOR, 24, value);
-
- /** The last time this entry was accessed, or null if it's unset. */
- Date get atime => _fromMs(_properties[25]);
- set atime(Date value) => _set(SET_ATIME, 25, _toMs(value));
-
- /** The time this entry was created, or null if it's unset. */
- Date get birthtime => _fromMs(_properties[26]);
- set birthtime(Date value) => _set(SET_BIRTHTIME, 26, _toMs(value));
-
- /**
- * The last time an inode property of this entry was changed, or null if it's
- * unset.
- */
- Date get ctime => _fromMs(_properties[27]);
- set ctime(Date value) => _set(SET_CTIME, 27, _toMs(value));
-
- /** The last time this entry was modified, or null if it's unset. */
- Date get mtime => _fromMs(_properties[28]);
- set mtime(Date value) => _set(SET_MTIME, 28, _toMs(value));
-
- /** Whether [openInputStream] has been called. */
- bool get isInputOpen => _input != null;
-
- /** Create a deep copy of this [ArchiveEntry]. */
- Future<ArchiveEntry> clone() {
- return call(CLONE, _id).
- transform((array) => new archive.ArchiveEntry.internal(array, null));
- }
-
- /**
- * Consumes the entire contents of this entry at once and returns it wrapped
- * in a [CompleteArchiveEntry]. All metadata fields in the returned entry are
- * copies of the fields in this entry.
- *
- * This may not be called if [openInputStream] is called, and vice versa.
- */
- Future<CompleteArchiveEntry> readAll() {
- var stream = openInputStream();
- var buffer = <int>[];
- var completer = new Completer<List<int>>();
-
- stream.onData = () => buffer.addAll(stream.read());
- stream.onError = completer.completeError;
- stream.onClosed = () => completer.complete(buffer);
-
- return Future.wait([call(CLONE, _id), completer.future])
- .then((list) => new CompleteArchiveEntry._(list[0], list[1]));
- }
-
- /**
- * Set a property value with index [value] on the local representation of the
- * archive entry and on the native representation.
- */
- void _set(int requestType, int index, value) {
- _properties[index] = value;
- // Since the native code processes messages in order, the SET_* messages
- // will be received and processed before any further messages.
- call(requestType, _id, [value]).then((_) {});
- }
-
- /**
- * Converts [ms], the (possibly null) number of milliseconds since the epoch
- * into a Date object (which may also be null).
- */
- Date _fromMs(int ms) {
- if (ms == null) return null;
- return new Date.fromMillisecondsSinceEpoch(ms);
- }
-
- /**
- * Converts [date], which may be null, into the number of milliseconds since
- * the epoch (which may also be null).
- */
- int _toMs(Date date) {
- if (date == null) return null;
- return date.millisecondsSinceEpoch;
- }
-
- /**
- * Creates a new input stream for reading the contents of this entry.
- *
- * The contents of an entry must be consumed before the next entry is read
- * from the parent [ArchiveInputStream]. This means that [openInputStream]
- * must be called from the [ArchiveInputStream.onEntry] callback, or before
- * the future returned by that callback completes. Once the next entry has
- * been read, calling [openInputStream] will throw an [ArchiveException].
- *
- * Only one input stream may be opened per entry.
- */
- InputStream openInputStream() {
- if (_archiveId == null) {
- throw new UnsupportedError("Cannot open input stream for "
- "archive entry $pathname.");
- } else if (_input != null) {
- throw new UnsupportedError("An input stream has already been"
- "opened for archive entry $pathname.");
- }
-
- var inputCompleter = new Completer();
- inputComplete = inputCompleter.future;
-
- _input = new ListInputStream();
- // TODO(nweiz): Report errors once issue 3657 is fixed
- var future = _consumeInput().then((_) {
- if (!_input.closed) _input.markEndOfStream();
- // Asynchronously complete to give the InputStream callbacks a chance to
- // fire.
- return async();
- }).then((_) => inputCompleter.complete(null));
-
- future.handleException((e) {
- print(e);
- print(future.stackTrace);
- });
- return _input;
- }
-
- /**
- * Close this entry so that its input stream no longer produces data.
- *
- * In addition to closing the associated input stream, this will prevent new
- * input streams from being opened.
- */
- void close() {
- _archiveId = null;
- if (_input != null) _input.close();
- }
-
- /**
- * Read all data from the archive and write it to [_input]. Returns a future
- * that completes once this is done.
- *
- * This assumes that both [_input] and [_archiveId] are non-null and that
- * [_input] is open, although if that changes before this completes it will
- * handle it gracefully.
- */
- Future _consumeInput() {
- var data;
- return call(read.DATA_BLOCK, _archiveId).then((_data) {
- data = _data;
- // TODO(nweiz): This async() call is only necessary because of issue 4222.
- return async();
- }).then((_) {
- if (_input.closed || _archiveId == null || data == null) {
- return new Future.immediate(null);
- }
- _input.write(data);
- return _consumeInput();
- });
- }
-}
-
-/**
- * An [ArchiveEntry] that contains the complete decompressed contents of the
- * file.
- */
-class CompleteArchiveEntry extends ArchiveEntry {
- /** The contents of the entry as bytes. */
- final List<int> contentBytes;
-
- /** The contents of the entry as a string. */
- String get contents => new String.fromCharCodes(contentBytes);
-
- CompleteArchiveEntry._(List properties, this.contentBytes)
- : super.internal(properties, null);
-}
« no previous file with comments | « utils/archive/entry.c ('k') | utils/archive/entry_request.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698