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

Side by Side Diff: runtime/bin/file.cc

Issue 15689013: - Modify dart_api.h to be a proper C API. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/bin/directory.cc ('k') | runtime/bin/gen_snapshot.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 564
565 565
566 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) { 566 void FUNCTION_NAME(File_Stat)(Dart_NativeArguments args) {
567 Dart_EnterScope(); 567 Dart_EnterScope();
568 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) { 568 if (Dart_IsString(Dart_GetNativeArgument(args, 0))) {
569 const char* path = 569 const char* path =
570 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); 570 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0));
571 571
572 int64_t stat_data[File::kStatSize]; 572 int64_t stat_data[File::kStatSize];
573 File::Stat(path, stat_data); 573 File::Stat(path, stat_data);
574 Dart_Handle returned_data = Dart_NewTypedData(kInt64, File::kStatSize); 574 Dart_Handle returned_data = Dart_NewTypedData(Dart_TypedData_kInt64,
575 File::kStatSize);
575 if (Dart_IsError(returned_data)) Dart_PropagateError(returned_data); 576 if (Dart_IsError(returned_data)) Dart_PropagateError(returned_data);
576 Dart_TypedData_Type data_type_unused; 577 Dart_TypedData_Type data_type_unused;
577 void* data_location; 578 void* data_location;
578 intptr_t data_length_unused; 579 intptr_t data_length_unused;
579 Dart_Handle status = Dart_TypedDataAcquireData(returned_data, 580 Dart_Handle status = Dart_TypedDataAcquireData(returned_data,
580 &data_type_unused, 581 &data_type_unused,
581 &data_location, 582 &data_location,
582 &data_length_unused); 583 &data_length_unused);
583 if (Dart_IsError(status)) Dart_PropagateError(status); 584 if (Dart_IsError(status)) Dart_PropagateError(status);
584 memmove(data_location, stat_data, File::kStatSize * sizeof(int64_t)); 585 memmove(data_location, stat_data, File::kStatSize * sizeof(int64_t));
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 return CObject::NewOSError(); 956 return CObject::NewOSError();
956 } 957 }
957 } else { 958 } else {
958 return CObject::FileClosedError(); 959 return CObject::FileClosedError();
959 } 960 }
960 } 961 }
961 return CObject::IllegalArgumentError(); 962 return CObject::IllegalArgumentError();
962 } 963 }
963 964
964 965
965 static int SizeInBytes(Dart_CObject::TypedDataType type) { 966 static int SizeInBytes(Dart_TypedData_Type type) {
966 switch (type) { 967 switch (type) {
967 case Dart_CObject::kInt8Array: 968 case Dart_TypedData_kInt8:
968 case Dart_CObject::kUint8Array: 969 case Dart_TypedData_kUint8:
969 case Dart_CObject::kUint8ClampedArray: 970 case Dart_TypedData_kUint8Clamped:
970 return 1; 971 return 1;
971 case Dart_CObject::kInt16Array: 972 case Dart_TypedData_kInt16:
972 case Dart_CObject::kUint16Array: 973 case Dart_TypedData_kUint16:
973 return 2; 974 return 2;
974 case Dart_CObject::kInt32Array: 975 case Dart_TypedData_kInt32:
975 case Dart_CObject::kUint32Array: 976 case Dart_TypedData_kUint32:
976 case Dart_CObject::kFloat32Array: 977 case Dart_TypedData_kFloat32:
977 return 4; 978 return 4;
978 case Dart_CObject::kInt64Array: 979 case Dart_TypedData_kInt64:
979 case Dart_CObject::kUint64Array: 980 case Dart_TypedData_kUint64:
980 case Dart_CObject::kFloat64Array: 981 case Dart_TypedData_kFloat64:
981 return 8; 982 return 8;
982 default: 983 default:
983 break; 984 break;
984 } 985 }
985 UNREACHABLE(); 986 UNREACHABLE();
986 return -1; 987 return -1;
987 } 988 }
988 989
989 990
990 static CObject* FileWriteFromRequest(const CObjectArray& request) { 991 static CObject* FileWriteFromRequest(const CObjectArray& request) {
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 } 1136 }
1136 return CObject::IllegalArgumentError(); 1137 return CObject::IllegalArgumentError();
1137 } 1138 }
1138 1139
1139 1140
1140 static void FileService(Dart_Port dest_port_id, 1141 static void FileService(Dart_Port dest_port_id,
1141 Dart_Port reply_port_id, 1142 Dart_Port reply_port_id,
1142 Dart_CObject* message) { 1143 Dart_CObject* message) {
1143 CObject* response = CObject::IllegalArgumentError(); 1144 CObject* response = CObject::IllegalArgumentError();
1144 CObjectArray request(message); 1145 CObjectArray request(message);
1145 if (message->type == Dart_CObject::kArray) { 1146 if (message->type == Dart_CObject_kArray) {
1146 if (request.Length() > 1 && request[0]->IsInt32()) { 1147 if (request.Length() > 1 && request[0]->IsInt32()) {
1147 CObjectInt32 requestType(request[0]); 1148 CObjectInt32 requestType(request[0]);
1148 switch (requestType.Value()) { 1149 switch (requestType.Value()) {
1149 case File::kExistsRequest: 1150 case File::kExistsRequest:
1150 response = FileExistsRequest(request); 1151 response = FileExistsRequest(request);
1151 break; 1152 break;
1152 case File::kCreateRequest: 1153 case File::kCreateRequest:
1153 response = FileCreateRequest(request); 1154 response = FileCreateRequest(request);
1154 break; 1155 break;
1155 case File::kOpenRequest: 1156 case File::kOpenRequest:
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1240 if (service_port != ILLEGAL_PORT) { 1241 if (service_port != ILLEGAL_PORT) {
1241 // Return a send port for the service port. 1242 // Return a send port for the service port.
1242 Dart_Handle send_port = Dart_NewSendPort(service_port); 1243 Dart_Handle send_port = Dart_NewSendPort(service_port);
1243 Dart_SetReturnValue(args, send_port); 1244 Dart_SetReturnValue(args, send_port);
1244 } 1245 }
1245 Dart_ExitScope(); 1246 Dart_ExitScope();
1246 } 1247 }
1247 1248
1248 } // namespace bin 1249 } // namespace bin
1249 } // namespace dart 1250 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/bin/directory.cc ('k') | runtime/bin/gen_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698