OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include <stdlib.h> | 5 #include <stdlib.h> |
6 #include <string.h> | 6 #include <string.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include "include/dart_api.h" | 9 #include "include/dart_api.h" |
10 #include "include/dart_tools_api.h" | 10 #include "include/dart_tools_api.h" |
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1048 Dart_Handle args[] = {paths, keys, values}; | 1048 Dart_Handle args[] = {paths, keys, values}; |
1049 Dart_Handle result = Dart_Invoke(io_lib, handler_function_name, 3, args); | 1049 Dart_Handle result = Dart_Invoke(io_lib, handler_function_name, 3, args); |
1050 if (Dart_IsError(result)) return ServiceRequestError(result); | 1050 if (Dart_IsError(result)) return ServiceRequestError(result); |
1051 const char *json; | 1051 const char *json; |
1052 result = Dart_StringToCString(result, &json); | 1052 result = Dart_StringToCString(result, &json); |
1053 if (Dart_IsError(result)) return ServiceRequestError(result); | 1053 if (Dart_IsError(result)) return ServiceRequestError(result); |
1054 return strdup(json); | 1054 return strdup(json); |
1055 } | 1055 } |
1056 | 1056 |
1057 | 1057 |
1058 extern bool capture_stdio; | |
1059 extern bool capture_stdout; | |
1060 extern bool capture_stderr; | |
1061 static const char* kStdoutStreamId = "Stdout"; | 1058 static const char* kStdoutStreamId = "Stdout"; |
1062 static const char* kStderrStreamId = "Stderr"; | 1059 static const char* kStderrStreamId = "Stderr"; |
1063 | 1060 |
1064 | 1061 |
1065 static bool ServiceStreamListenCallback(const char* stream_id) { | 1062 static bool ServiceStreamListenCallback(const char* stream_id) { |
1066 if (strcmp(stream_id, kStdoutStreamId) == 0) { | 1063 if (strcmp(stream_id, kStdoutStreamId) == 0) { |
1067 capture_stdio = true; | 1064 File::set_capture_stdout(true); |
1068 capture_stdout = true; | |
1069 return true; | 1065 return true; |
1070 } else if (strcmp(stream_id, kStderrStreamId) == 0) { | 1066 } else if (strcmp(stream_id, kStderrStreamId) == 0) { |
1071 capture_stdio = true; | 1067 File::set_capture_stderr(true); |
1072 capture_stderr = true; | |
1073 return true; | 1068 return true; |
1074 } | 1069 } |
1075 return false; | 1070 return false; |
1076 } | 1071 } |
1077 | 1072 |
1078 | 1073 |
1079 static void ServiceStreamCancelCallback(const char* stream_id) { | 1074 static void ServiceStreamCancelCallback(const char* stream_id) { |
1080 if (strcmp(stream_id, kStdoutStreamId) == 0) { | 1075 if (strcmp(stream_id, kStdoutStreamId) == 0) { |
1081 capture_stdout = false; | 1076 File::set_capture_stdout(false); |
1082 } else if (strcmp(stream_id, kStderrStreamId) == 0) { | 1077 } else if (strcmp(stream_id, kStderrStreamId) == 0) { |
1083 capture_stderr = false; | 1078 File::set_capture_stderr(false); |
1084 } | 1079 } |
1085 capture_stdio = (capture_stdout || capture_stderr); | |
1086 } | 1080 } |
1087 | 1081 |
1088 | 1082 |
1089 static void WriteSnapshotFile(const char* filename, | 1083 static void WriteSnapshotFile(const char* filename, |
1090 const uint8_t* buffer, | 1084 const uint8_t* buffer, |
1091 const intptr_t size) { | 1085 const intptr_t size) { |
1092 File* file = File::Open(filename, File::kWriteTruncate); | 1086 File* file = File::Open(filename, File::kWriteTruncate); |
1093 ASSERT(file != NULL); | 1087 ASSERT(file != NULL); |
1094 if (!file->WriteFully(buffer, size)) { | 1088 if (!file->WriteFully(buffer, size)) { |
1095 ErrorExit(kErrorExitCode, | 1089 ErrorExit(kErrorExitCode, |
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 Platform::Exit(Process::GlobalExitCode()); | 1516 Platform::Exit(Process::GlobalExitCode()); |
1523 } | 1517 } |
1524 | 1518 |
1525 } // namespace bin | 1519 } // namespace bin |
1526 } // namespace dart | 1520 } // namespace dart |
1527 | 1521 |
1528 int main(int argc, char** argv) { | 1522 int main(int argc, char** argv) { |
1529 dart::bin::main(argc, argv); | 1523 dart::bin::main(argc, argv); |
1530 UNREACHABLE(); | 1524 UNREACHABLE(); |
1531 } | 1525 } |
OLD | NEW |