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

Unified Diff: runtime/bin/dartutils.cc

Issue 10916081: Add secure sockets to dart:io (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments, remove HandshakeStartHandler. Created 8 years, 1 month 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 | « runtime/bin/dartutils.h ('k') | runtime/bin/file.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/dartutils.cc
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
index 757f29d72e25b76281906d20d9b5ea4d15c3e631..f185437479360de525c7ab9d4407920311fe8c6b 100644
--- a/runtime/bin/dartutils.cc
+++ b/runtime/bin/dartutils.cc
@@ -484,6 +484,13 @@ bool DartUtils::PostInt32(Dart_Port port_id, int32_t value) {
}
+Dart_Handle DartUtils::GetDartClass(const char* library_url,
+ const char* class_name) {
+ return Dart_GetClass(Dart_LookupLibrary(NewString(library_url)),
+ NewString(class_name));
+}
+
+
Dart_Handle DartUtils::NewDartOSError() {
// Extract the current OS error.
OSError os_error;
@@ -492,22 +499,41 @@ Dart_Handle DartUtils::NewDartOSError() {
Dart_Handle DartUtils::NewDartOSError(OSError* os_error) {
- // Create a Dart OSError object with the information retrieved from the OS.
- Dart_Handle url = NewString("dart:io");
- if (Dart_IsError(url)) return url;
- Dart_Handle lib = Dart_LookupLibrary(url);
- if (Dart_IsError(lib)) return lib;
- Dart_Handle class_name = NewString("OSError");
- if (Dart_IsError(class_name)) return class_name;
- Dart_Handle clazz = Dart_GetClass(lib, class_name);
- if (Dart_IsError(clazz)) return clazz;
+ // Create a dart:io OSError object with the information retrieved from the OS.
+ Dart_Handle clazz = GetDartClass(kIOLibURL, "OSError");
Dart_Handle args[2];
args[0] = NewString(os_error->message());
- if (Dart_IsError(args[0])) return args[0];
args[1] = Dart_NewInteger(os_error->code());
- if (Dart_IsError(args[1])) return args[1];
- Dart_Handle err = Dart_New(clazz, Dart_Null(), 2, args);
- return err;
+ return Dart_New(clazz, Dart_Null(), 2, args);
+}
+
+
+Dart_Handle DartUtils::NewDartSocketIOException(const char* message,
+ Dart_Handle os_error) {
+ // Create a dart:io SocketIOException object.
+ Dart_Handle clazz = GetDartClass(kIOLibURL, "SocketIOException");
+ Dart_Handle args[2];
+ args[0] = NewString(message);
+ args[1] = os_error;
+ return Dart_New(clazz, Dart_Null(), 2, args);
+}
+
+
+Dart_Handle DartUtils::NewDartExceptionWithMessage(const char* library_url,
+ const char* exception_name,
+ const char* message) {
+ // Create a Dart Exception object with a message.
+ Dart_Handle clazz = GetDartClass(library_url, exception_name);
+ Dart_Handle args[1];
+ args[0] = NewString(message);
+ return Dart_New(clazz, Dart_Null(), 1, args);
+}
+
+
+Dart_Handle DartUtils::NewDartArgumentError(const char* message) {
+ return NewDartExceptionWithMessage(kCoreLibURL,
+ "ArgumentError",
+ message);
}
« no previous file with comments | « runtime/bin/dartutils.h ('k') | runtime/bin/file.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698