ArchiveFile constructor

ArchiveFile(
  1. String name,
  2. int size,
  3. dynamic content, [
  4. int? _compressionType = STORE,
])

Implementation

ArchiveFile(this.name, this.size, dynamic content,
    [this._compressionType = STORE]) {
  name = name.replaceAll('\\', '/');
  if (content is Uint8List) {
    _content = content;
    _rawContent = InputStream(_content);
    if (size <= 0) {
      size = content.length;
    }
  } else if (content is InputStream) {
    _rawContent = InputStream.from(content);
    if (size <= 0) {
      size = content.length;
    }
  } else if (content is InputStreamBase) {
    _rawContent = content;
    if (size <= 0) {
      size = content.length;
    }
  } else if (content is TypedData) {
    _content = Uint8List.view(content.buffer);
    _rawContent = InputStream(_content);
    if (size <= 0) {
      size = (_content as Uint8List).length;
    }
  } else if (content is String) {
    _content = utf8.encode(content);
    _rawContent = InputStream(_content);
    if (size <= 0) {
      size = (_content as Uint8List).length + 1;
    }
  } else if (content is List<int>) {
    // Legacy
    // This expects the list to be a list of bytes, with values [0, 255].
    _content = content;
    _rawContent = InputStream(_content);
    if (size <= 0) {
      size = content.length;
    }
  } else if (content is FileContent) {
    _content = content;
  }
}