| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 "bin/file.h" | 5 #include "bin/file.h" |
| 6 | 6 |
| 7 #include "bin/builtin.h" | 7 #include "bin/builtin.h" |
| 8 #include "bin/dartutils.h" | 8 #include "bin/dartutils.h" |
| 9 #include "bin/io_buffer.h" | 9 #include "bin/io_buffer.h" |
| 10 #include "bin/thread.h" | 10 #include "bin/thread.h" |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 499 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 500 } else { | 500 } else { |
| 501 Dart_Handle err = DartUtils::NewDartOSError(); | 501 Dart_Handle err = DartUtils::NewDartOSError(); |
| 502 if (Dart_IsError(err)) Dart_PropagateError(err); | 502 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 503 Dart_SetReturnValue(args, err); | 503 Dart_SetReturnValue(args, err); |
| 504 } | 504 } |
| 505 Dart_ExitScope(); | 505 Dart_ExitScope(); |
| 506 } | 506 } |
| 507 | 507 |
| 508 | 508 |
| 509 void FUNCTION_NAME(File_Rename)(Dart_NativeArguments args) { |
| 510 Dart_EnterScope(); |
| 511 const char* old_path = |
| 512 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 513 const char* new_path = |
| 514 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 515 bool result = File::Rename(old_path, new_path); |
| 516 if (result) { |
| 517 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 518 } else { |
| 519 Dart_Handle err = DartUtils::NewDartOSError(); |
| 520 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 521 Dart_SetReturnValue(args, err); |
| 522 } |
| 523 Dart_ExitScope(); |
| 524 } |
| 525 |
| 526 |
| 509 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { | 527 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { |
| 510 Dart_EnterScope(); | 528 Dart_EnterScope(); |
| 511 const char* str = | 529 const char* str = |
| 512 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 530 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 513 char* path = File::GetCanonicalPath(str); | 531 char* path = File::GetCanonicalPath(str); |
| 514 if (path != NULL) { | 532 if (path != NULL) { |
| 515 Dart_SetReturnValue(args, DartUtils::NewString(path)); | 533 Dart_SetReturnValue(args, DartUtils::NewString(path)); |
| 516 free(path); | 534 free(path); |
| 517 } else { | 535 } else { |
| 518 Dart_Handle err = DartUtils::NewDartOSError(); | 536 Dart_Handle err = DartUtils::NewDartOSError(); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 if (result) { | 718 if (result) { |
| 701 return CObject::True(); | 719 return CObject::True(); |
| 702 } else { | 720 } else { |
| 703 return CObject::NewOSError(); | 721 return CObject::NewOSError(); |
| 704 } | 722 } |
| 705 } | 723 } |
| 706 return CObject::False(); | 724 return CObject::False(); |
| 707 } | 725 } |
| 708 | 726 |
| 709 | 727 |
| 728 static CObject* FileRenameRequest(const CObjectArray& request) { |
| 729 if (request.Length() == 3 && |
| 730 request[1]->IsString() && |
| 731 request[2]->IsString()) { |
| 732 CObjectString old_path(request[1]); |
| 733 CObjectString new_path(request[2]); |
| 734 bool completed = File::Rename(old_path.CString(), new_path.CString()); |
| 735 if (completed) return CObject::True(); |
| 736 return CObject::NewOSError(); |
| 737 } |
| 738 return CObject::IllegalArgumentError(); |
| 739 } |
| 740 |
| 741 |
| 710 static CObject* FileFullPathRequest(const CObjectArray& request) { | 742 static CObject* FileFullPathRequest(const CObjectArray& request) { |
| 711 if (request.Length() == 2 && request[1]->IsString()) { | 743 if (request.Length() == 2 && request[1]->IsString()) { |
| 712 CObjectString filename(request[1]); | 744 CObjectString filename(request[1]); |
| 713 char* result = File::GetCanonicalPath(filename.CString()); | 745 char* result = File::GetCanonicalPath(filename.CString()); |
| 714 if (result != NULL) { | 746 if (result != NULL) { |
| 715 CObject* path = new CObjectString(CObject::NewString(result)); | 747 CObject* path = new CObjectString(CObject::NewString(result)); |
| 716 free(result); | 748 free(result); |
| 717 return path; | 749 return path; |
| 718 } else { | 750 } else { |
| 719 return CObject::NewOSError(); | 751 return CObject::NewOSError(); |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1161 break; | 1193 break; |
| 1162 case File::kCreateRequest: | 1194 case File::kCreateRequest: |
| 1163 response = FileCreateRequest(request); | 1195 response = FileCreateRequest(request); |
| 1164 break; | 1196 break; |
| 1165 case File::kOpenRequest: | 1197 case File::kOpenRequest: |
| 1166 response = FileOpenRequest(request); | 1198 response = FileOpenRequest(request); |
| 1167 break; | 1199 break; |
| 1168 case File::kDeleteRequest: | 1200 case File::kDeleteRequest: |
| 1169 response = FileDeleteRequest(request); | 1201 response = FileDeleteRequest(request); |
| 1170 break; | 1202 break; |
| 1203 case File::kRenameRequest: |
| 1204 response = FileRenameRequest(request); |
| 1205 break; |
| 1171 case File::kFullPathRequest: | 1206 case File::kFullPathRequest: |
| 1172 response = FileFullPathRequest(request); | 1207 response = FileFullPathRequest(request); |
| 1173 break; | 1208 break; |
| 1174 case File::kCloseRequest: | 1209 case File::kCloseRequest: |
| 1175 response = FileCloseRequest(request); | 1210 response = FileCloseRequest(request); |
| 1176 break; | 1211 break; |
| 1177 case File::kPositionRequest: | 1212 case File::kPositionRequest: |
| 1178 response = FilePositionRequest(request); | 1213 response = FilePositionRequest(request); |
| 1179 break; | 1214 break; |
| 1180 case File::kSetPositionRequest: | 1215 case File::kSetPositionRequest: |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1250 if (service_port != ILLEGAL_PORT) { | 1285 if (service_port != ILLEGAL_PORT) { |
| 1251 // Return a send port for the service port. | 1286 // Return a send port for the service port. |
| 1252 Dart_Handle send_port = Dart_NewSendPort(service_port); | 1287 Dart_Handle send_port = Dart_NewSendPort(service_port); |
| 1253 Dart_SetReturnValue(args, send_port); | 1288 Dart_SetReturnValue(args, send_port); |
| 1254 } | 1289 } |
| 1255 Dart_ExitScope(); | 1290 Dart_ExitScope(); |
| 1256 } | 1291 } |
| 1257 | 1292 |
| 1258 } // namespace bin | 1293 } // namespace bin |
| 1259 } // namespace dart | 1294 } // namespace dart |
| OLD | NEW |