blob: ed789f04f0cd36be9797c8075f56f0788131e7fe [file] [log] [blame]
// 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.
/// Note: the VM concatenates all patch files into a single patch file. This
/// file is the first patch in "dart:io" which contains all the imports used by
/// patches of that library. We plan to change this when we have a shared front
/// end and simply use parts.
import "dart:_internal" show VMLibraryHooks, patch, checkNotNullable, ClassID;
import "dart:async"
show
Completer,
Future,
Stream,
StreamConsumer,
StreamController,
StreamSubscription,
Timer,
Zone,
scheduleMicrotask;
import "dart:collection" show HashMap, Queue;
import "dart:convert" show Encoding, utf8;
import "dart:developer" show registerExtension;
import "dart:isolate" show RawReceivePort, ReceivePort, SendPort;
import "dart:math" show min;
import "dart:nativewrappers" show NativeFieldWrapperClass1;
import "dart:typed_data" show Uint8List, BytesBuilder;
/// These are the additional parts of this patch library:
// part "directory_patch.dart";
// part "eventhandler_patch.dart";
// part "file_patch.dart";
// part "file_system_entity_patch.dart";
// part "filter_patch.dart";
// part "io_service_patch.dart";
// part "platform_patch.dart";
// part "process_patch.dart";
// part "socket_patch.dart";
// part "stdio_patch.dart";
// part "secure_socket_patch.dart";
// part "sync_socket_patch.dart";
@patch
bool _isDirectIOCapableTypedList(List<int> buffer) {
int classID = ClassID.getID(buffer);
return classID == ClassID.cidExternalInt8Array ||
classID == ClassID.cidExternalUint8Array ||
classID == ClassID.cidExternalUint8ClampedArray ||
classID == ClassID.cidInt8Array ||
classID == ClassID.cidInt8ArrayView ||
classID == ClassID.cidUint8Array ||
classID == ClassID.cidUint8ArrayView ||
classID == ClassID.cidUint8ClampedArray;
}
@patch
class OSError {
@patch
@pragma("vm:external-name", "OSError_inProgressErrorCode")
external static int inProgressErrorCode();
}
@patch
class _IOCrypto {
@patch
@pragma("vm:external-name", "Crypto_GetRandomBytes")
external static Uint8List getRandomBytes(int count);
}
@pragma("vm:entry-point", "call")
_setupHooks() {
VMLibraryHooks.eventHandlerSendData = _EventHandler._sendData;
VMLibraryHooks.timerMillisecondClock = _EventHandler._timerMillisecondClock;
}