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

Side by Side Diff: runtime/vm/service.cc

Issue 2120473004: Reimplement devfs in dart. Implementation now writes to disk. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: code review Created 4 years, 5 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
« no previous file with comments | « runtime/vm/dev_fs.cc ('k') | runtime/vm/service_isolate.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 "vm/service.h" 5 #include "vm/service.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "include/dart_native_api.h" 8 #include "include/dart_native_api.h"
9 #include "platform/globals.h" 9 #include "platform/globals.h"
10 10
11 #include "vm/compiler.h" 11 #include "vm/compiler.h"
12 #include "vm/cpu.h" 12 #include "vm/cpu.h"
13 #include "vm/dart_api_impl.h" 13 #include "vm/dart_api_impl.h"
14 #include "vm/dart_api_state.h" 14 #include "vm/dart_api_state.h"
15 #include "vm/dart_entry.h" 15 #include "vm/dart_entry.h"
16 #include "vm/debugger.h" 16 #include "vm/debugger.h"
17 #include "vm/dev_fs.h"
18 #include "vm/isolate.h" 17 #include "vm/isolate.h"
19 #include "vm/lockers.h" 18 #include "vm/lockers.h"
20 #include "vm/message.h" 19 #include "vm/message.h"
21 #include "vm/message_handler.h" 20 #include "vm/message_handler.h"
22 #include "vm/native_entry.h" 21 #include "vm/native_entry.h"
23 #include "vm/native_arguments.h" 22 #include "vm/native_arguments.h"
24 #include "vm/native_symbol.h" 23 #include "vm/native_symbol.h"
25 #include "vm/object.h" 24 #include "vm/object.h"
26 #include "vm/object_graph.h" 25 #include "vm/object_graph.h"
27 #include "vm/object_id_ring.h" 26 #include "vm/object_id_ring.h"
(...skipping 3973 matching lines...) Expand 10 before | Expand all | Expand 10 after
4001 return true; 4000 return true;
4002 } 4001 }
4003 const Class& cls = Class::Handle(GetClassForId(isolate, cid)); 4002 const Class& cls = Class::Handle(GetClassForId(isolate, cid));
4004 ASSERT(!cls.IsNull()); 4003 ASSERT(!cls.IsNull());
4005 cls.SetTraceAllocation(enable); 4004 cls.SetTraceAllocation(enable);
4006 PrintSuccess(js); 4005 PrintSuccess(js);
4007 return true; 4006 return true;
4008 } 4007 }
4009 4008
4010 4009
4011 static const MethodParameter* create_dev_fs_params[] = {
4012 NO_ISOLATE_PARAMETER,
4013 new DartStringParameter("fsName", true),
4014 NULL,
4015 };
4016
4017
4018 static bool CreateDevFS(Thread* thread, JSONStream* js) {
4019 const String& fs_name =
4020 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4021 DevFS::CreateFileSystem(js, fs_name);
4022 return true;
4023 }
4024
4025
4026 static const MethodParameter* delete_dev_fs_params[] = {
4027 NO_ISOLATE_PARAMETER,
4028 new DartStringParameter("fsName", true),
4029 NULL,
4030 };
4031
4032
4033 static bool DeleteDevFS(Thread* thread, JSONStream* js) {
4034 const String& fs_name =
4035 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4036 DevFS::DeleteFileSystem(js, fs_name);
4037 return true;
4038 }
4039
4040
4041 static const MethodParameter* list_dev_fs_params[] = {
4042 NO_ISOLATE_PARAMETER,
4043 NULL,
4044 };
4045
4046
4047 static bool ListDevFS(Thread* thread, JSONStream* js) {
4048 DevFS::ListFileSystems(js);
4049 return true;
4050 }
4051
4052
4053 static const MethodParameter* write_dev_fs_file_params[] = {
4054 NO_ISOLATE_PARAMETER,
4055 new DartStringParameter("fsName", true),
4056 new DartStringParameter("path", true),
4057 new DartStringParameter("fileContents", true),
4058 NULL,
4059 };
4060
4061
4062 static bool WriteDevFSFile(Thread* thread, JSONStream* js) {
4063 const String& fs_name =
4064 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4065 const String& path =
4066 String::Handle(String::RawCast(js->LookupObjectParam("path")));
4067 const String& file_contents =
4068 String::Handle(String::RawCast(js->LookupObjectParam("fileContents")));
4069 DevFS::WriteFile(js, fs_name, path, file_contents);
4070 return true;
4071 }
4072
4073
4074 static const MethodParameter* write_dev_fs_files_params[] = {
4075 NO_ISOLATE_PARAMETER,
4076 new DartStringParameter("fsName", true),
4077 new DartListParameter("files", true),
4078 NULL,
4079 };
4080
4081
4082 static bool WriteDevFSFiles(Thread* thread, JSONStream* js) {
4083 const String& fs_name =
4084 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4085 Array& files = Array::Handle();
4086 const Object& files_param = Object::Handle(js->LookupObjectParam("files"));
4087 if (files_param.IsArray()) {
4088 files ^= files_param.raw();
4089 } else {
4090 ASSERT(files_param.IsGrowableObjectArray());
4091 files ^= GrowableObjectArray::Cast(files_param).data();
4092 }
4093 ASSERT(!files.IsNull());
4094 DevFS::WriteFiles(js, fs_name, files);
4095 return true;
4096 }
4097
4098
4099 static const MethodParameter* read_dev_fs_file_params[] = {
4100 NO_ISOLATE_PARAMETER,
4101 new DartStringParameter("fsName", true),
4102 new DartStringParameter("path", true),
4103 NULL,
4104 };
4105
4106
4107 static bool ReadDevFSFile(Thread* thread, JSONStream* js) {
4108 const String& fs_name =
4109 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4110 const String& path =
4111 String::Handle(String::RawCast(js->LookupObjectParam("path")));
4112 DevFS::ReadFile(js, fs_name, path);
4113 return true;
4114 }
4115
4116
4117 static const MethodParameter* list_dev_fs_files_params[] = {
4118 NO_ISOLATE_PARAMETER,
4119 new DartStringParameter("fsName", true),
4120 NULL,
4121 };
4122
4123
4124 static bool ListDevFSFiles(Thread* thread, JSONStream* js) {
4125 const String& fs_name =
4126 String::Handle(String::RawCast(js->LookupObjectParam("fsName")));
4127 DevFS::ListFiles(js, fs_name);
4128 return true;
4129 }
4130
4131
4132 static const ServiceMethodDescriptor service_methods_[] = { 4010 static const ServiceMethodDescriptor service_methods_[] = {
4133 { "_dumpIdZone", DumpIdZone, NULL }, 4011 { "_dumpIdZone", DumpIdZone, NULL },
4134 { "_echo", Echo, 4012 { "_echo", Echo,
4135 NULL }, 4013 NULL },
4136 { "_respondWithMalformedJson", RespondWithMalformedJson, 4014 { "_respondWithMalformedJson", RespondWithMalformedJson,
4137 NULL }, 4015 NULL },
4138 { "_respondWithMalformedObject", RespondWithMalformedObject, 4016 { "_respondWithMalformedObject", RespondWithMalformedObject,
4139 NULL }, 4017 NULL },
4140 { "_triggerEchoEvent", TriggerEchoEvent, 4018 { "_triggerEchoEvent", TriggerEchoEvent,
4141 NULL }, 4019 NULL },
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
4234 { "setLibraryDebuggable", SetLibraryDebuggable, 4112 { "setLibraryDebuggable", SetLibraryDebuggable,
4235 set_library_debuggable_params }, 4113 set_library_debuggable_params },
4236 { "setName", SetName, 4114 { "setName", SetName,
4237 set_name_params }, 4115 set_name_params },
4238 { "_setTraceClassAllocation", SetTraceClassAllocation, 4116 { "_setTraceClassAllocation", SetTraceClassAllocation,
4239 set_trace_class_allocation_params }, 4117 set_trace_class_allocation_params },
4240 { "setVMName", SetVMName, 4118 { "setVMName", SetVMName,
4241 set_vm_name_params }, 4119 set_vm_name_params },
4242 { "_setVMTimelineFlags", SetVMTimelineFlags, 4120 { "_setVMTimelineFlags", SetVMTimelineFlags,
4243 set_vm_timeline_flags_params }, 4121 set_vm_timeline_flags_params },
4244 { "_createDevFS", CreateDevFS,
4245 create_dev_fs_params },
4246 { "_deleteDevFS", DeleteDevFS,
4247 delete_dev_fs_params },
4248 { "_listDevFS", ListDevFS,
4249 list_dev_fs_params },
4250 { "_writeDevFSFile", WriteDevFSFile,
4251 write_dev_fs_file_params },
4252 { "_writeDevFSFiles", WriteDevFSFiles,
4253 write_dev_fs_files_params },
4254 { "_readDevFSFile", ReadDevFSFile,
4255 read_dev_fs_file_params },
4256 { "_listDevFSFiles", ListDevFSFiles,
4257 list_dev_fs_files_params },
4258 }; 4122 };
4259 4123
4260 4124
4261 const ServiceMethodDescriptor* FindMethod(const char* method_name) { 4125 const ServiceMethodDescriptor* FindMethod(const char* method_name) {
4262 intptr_t num_methods = sizeof(service_methods_) / 4126 intptr_t num_methods = sizeof(service_methods_) /
4263 sizeof(service_methods_[0]); 4127 sizeof(service_methods_[0]);
4264 for (intptr_t i = 0; i < num_methods; i++) { 4128 for (intptr_t i = 0; i < num_methods; i++) {
4265 const ServiceMethodDescriptor& method = service_methods_[i]; 4129 const ServiceMethodDescriptor& method = service_methods_[i];
4266 if (strcmp(method_name, method.name) == 0) { 4130 if (strcmp(method_name, method.name) == 0) {
4267 return &method; 4131 return &method;
4268 } 4132 }
4269 } 4133 }
4270 return NULL; 4134 return NULL;
4271 } 4135 }
4272 4136
4273 #endif // !PRODUCT 4137 #endif // !PRODUCT
4274 4138
4275 } // namespace dart 4139 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dev_fs.cc ('k') | runtime/vm/service_isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698